
ИИ для Excel на C# означает объединение суждений языковой модели с реальной библиотекой обработки Excel внутри приложения .NET. Это позволяет приложению объединять, нормализовать, анализировать и форматировать данные электронных таблиц на основе инструкций на естественном языке, а не с помощью кода, написанного для каждого столбца отдельно. Самая сложная часть отчетности в Excel редко заключается в построении итоговой диаграммы — она заключается в превращении груды несогласованных исходных файлов в данные, которым можно доверять. С ИИ-агентом вы описываете задачу отчетности («объедини эти 20 файлов магазинов и отметь те, где выручка упала более чем на 30%») и получаете на выходе отформатированную книгу, а не просто ответ в чате. Spire.Agent.Office предоставляет обе составляющие: понимание языка и детерминированный уровень работы с документами, который гарантирует создание реального файла .xlsx (или PDF).
Быстрая навигация
- От разнородных книг к единой модели данных
- Превращение бизнес-правил в анализ на естественном языке
- От анализа к отчету для руководства
- Создание рабочего процесса на C#
- Часто задаваемые вопросы
1. Настоящее «узкое место» в автоматизации отчетов Excel
Возьмем повторяющуюся задачу, стоящую за большинством запросов на «ежемесячную отчетность». Операционный отдел управляет 20 региональными магазинами, и каждый магазин присылает книгу продаж в конце месяца. Теоретически это один отчет. На практике это двадцать разных файлов, которые случайно имеют схожий шаблон имени:
- Столбцы не совпадают. Один магазин называет показатель
Выручка, другойСумма продаж, третийЧистые продажи. - Макет не совпадает. Один магазин размещает месяцы по столбцам, другой по строкам, третий вставляет столбец с примечаниями посередине.
- Типы данных не совпадают. Даты приходят как текст, числа — как тысячи, и как минимум один магазин объединяет строку заголовка с заголовком таблицы.
Поэтому, прежде чем кто-либо сможет создать диаграмму для руководства, аналитик тратит неделю на открытие файлов, сопоставление столбцов, нормализацию дат, поиск опечаток и только потом — на проверку аномалий и сборку отчета. Ничто из этого не является «генерацией отчета». Это всё подготовка данных.
Важно усвоить: сложная часть отчетности в Excel редко заключается в создании финальной диаграммы. Она заключается в превращении несогласованных исходных файлов в данные, которым можно доверять. Библиотека для построения графиков с радостью построит график по неверным данным; команде не хватает надежного пути от «сырых» файлов во входящих до чистой, сопоставимой таблицы. Именно на этом пути ИИ-агент меняет экономику процесса.
2. Что меняется, когда в рабочий процесс входит ИИ-агент
Автоматизация этой задачи не нова — она просто обычно обходится дорого. Сравните два рабочих процесса:
Традиционная автоматизация
Проверка файлов
→ сопоставление столбцов
→ нормализация данных
→ написание правил
→ создание книги
Каждый шаг, кроме последнего, предопределен: вы пишете карту столбцов для каждого известного заголовка, парсер даты для каждого известного формата и пороговое значение для каждого правила. В тот момент, когда магазин переименовывает столбец или меняется бизнес-правило, карта и правила становятся неверными, и человек снова возвращается в цикл.
Автоматизация с помощью агента
Описание задачи отчетности
→ предоставление исходных книг
→ проверка результата
Агент считывает смысл каждой книги, а не фиксированную позицию, поэтому карту столбцов и набор правил больше не нужно перечислять заранее. Он устраняет именно ту дорогую часть: работу по предварительному определению схемы и набора правил, которые сломаются на следующем же файле.

В остальной части этой статьи мы пройдем по этому конвейеру один раз, от «сырых» книг до распечатанного PDF, используя сценарий с 20 магазинами в качестве примера. В разделах с 3 по 5 объясняется, что делает агент на каждом этапе; раздел 6 содержит полный код на C#, который управляет процессом.
3. От разнородных книг к единой модели данных
Специфическая проблема Excel заключается в том, что разные книги «выглядят одинаково», не являясь таковыми на самом деле. Три магазина могут прислать таблицу с четырьмя столбцами, и у вас всё равно не будет способа объединить их без человеческой интерпретации:
| Магазин A | Магазин B | Магазин C |
|---|---|---|
| Выручка | Сумма продаж | Чистые продажи |
| Месяц | Отчетный период | Дата |
| Единицы | Количество продаж | Кол-во |
Нет индекса столбца, который сопоставил бы их друг с другом, потому что сопоставление — семантическое, а не позиционное. Выручка, Сумма продаж и Чистые продажи — это три названия одного и того же понятия, и только понимание заголовка позволяет их выровнять.
Этап консолидации агента превращает это семантическое выравнивание в единую схему:
Магазин / Регион / SKU / ПроданоЕдиниц / Выручка / Месяц
Он считывает каждую исходную книгу, сопоставляет имена заголовков с целевой моделью, выравнивает строки и столбцы, пропускает дублирующиеся строки заголовков и создает одну нормализованную таблицу. Разработчику больше не нужно писать процедуру FindColumnByHeader("Выручка") — в инструкции указывается целевая схема, а агент сам определяет сопоставление для каждого файла.
Это этап с наибольшей разовой отдачей, так как именно он в настоящее время потребляет больше всего времени аналитика и чаще всего ломается при подключении нового магазина.
4. Превращение бизнес-правил в анализ на естественном языке
Как только данные собраны в одном месте, для отчетности требуется суждение, а именно там, где жестко закодированные правила терпит неудачу. В нашем примере используется типичное финансовое правило:
Отметить строки, где выручка упала более чем на 30% или выросла более чем на 50% по сравнению с предыдущим месяцем.
Заметьте, сколько всего заложено в это предложение и насколько неудобно каждое из них выглядит в виде кода:
-
Почему 30% и 50%? Это бизнес-пороговые значения с контекстом — сезонный магазин, новый SKU или акция меняют значение того, что считается «необычным». Жестко закодированное
if (change < -0.30)относится к каждому магазину одинаково и вызывает ложные срабатывания из-за сезонности. - Как это изменить? В коде нужно перекомпилировать и развернуть приложение заново. В инструкции аналитик просто меняет одно предложение: «упала более чем на 20%», или «только для Восточного региона», или «отмечать только SKU с продажами более 100 единиц».
- Добавить измерение? Хотите, чтобы правило применялось к каждому магазину и к каждому региону и к каждому месяцу? Вы добавляете условие в инструкцию, а не вложенный цикл.
-
Объяснить результат? Агент может добавить столбец
Причинас объяснением из одного предложения для каждой отмеченной строки — то, что невозможно получить с помощью простого сравнения порогов.
Принцип, который вытекает из этого раздела, стоит сформулировать прямо:
Код определяет как; инструкции определяют что.
Разработчик перестает кодировать правило и начинает описывать результат. Правило остается читаемым, редактируемым бизнесом и переживает добавление нового магазина или изменение порога без изменения кода.
Полный пример анализа на основе инструкций, примененный к рабочему процессу ранжирования, см. в руководстве по анализу и ранжированию оценок студентов.
5. От анализа к отчету для руководства
Поиск аномалий — это только половина дела. Результат должен стать книгой, которой действительно можно пользоваться — электронная таблица аналитика не является конечным продуктом; им является сводка для руководства.
Конвейер выглядит так:
Исходные книги
↓
Консолидированные данные
↓
Аномалии
↓
Сводка для руководства
↓
PDF
Финальная инструкция формирует результат: лист Сводка в начале с блоком KPI (общая выручка, лучший магазин, худший магазин, количество отмеченных аномалий), таблица ежемесячных трендов, гистограмма выручки по регионам и форматирование, готовое к печати. Указание того же пути для .pdf экспортирует готовый отчет в PDF для рассылки без отдельного шага рендеринга.
Важный вывод: анализ и оформление — это две разные задачи, и агент выполняет обе. Работа аналитика сводится к проверке отмеченного списка и утверждению, а не к пересборке отчета каждый месяц.
6. Создание рабочего процесса на C#
Все вышеперечисленные части управляются одним конвейером на C#. Настройте агента один раз, затем выполните три инструкции последовательно: консолидация, анализ, отчет. Полная настройка — токены, пакеты и подключение проекта — пошагово описана в руководстве Начало работы; здесь мы сосредоточимся на самом рабочем процессе.
using System.IO;
using Spire.Xls;
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
AIOptions options = new AIOptions {
SpireToken = spireToken,
WorkDir = @"C:\retail-ops\output",
TimeoutMs = 300000
};
string[] storeFiles = Directory.GetFiles(@"C:\retail-ops\inbox", "*.xlsx");
Directory.CreateDirectory(@"C:\retail-ops\output");
1. Консолидация. Передайте 20 файлов из входящих в качестве вложений и укажите целевую схему. Нормализация из раздела 3 происходит здесь, управляемая инструкцией, а не картой столбцов:
using (Workbook consolidated = new Workbook())
{
AIResult result = consolidated.AI(options).ExecuteInstruction(
consolidated,
"Прочитай каждую книгу региональных продаж во входящих и объедини их в один лист. " +
"Каждый магазин называет свои столбцы по-разному (например, Sales против Amount, Month против Period); " +
"нормализуй их к единой схеме: Store, Region, SKU, UnitsSold, Revenue, Month. Пропусти " +
"дублирующиеся строки заголовков и сохрани объединенный результат как книгу.",
@"C:\retail-ops\output\consolidated.xlsx",
storeFiles);
if (result == null || !result.Success)
throw new InvalidOperationException($"Консолидация не удалась: {result?.ErrorMessage}");
}
2. Анализ. Загрузите консолидированный файл и сформулируйте правило из раздела 4 на простом английском. Агент добавляет лист Аномалии и оставляет исходные данные нетронутыми:
using (Workbook analysis = new Workbook())
{
analysis.LoadFromFile(@"C:\retail-ops\output\consolidated.xlsx");
AIResult result = analysis.AI(options).ExecuteInstruction(
analysis,
"Добавь лист 'Аномалии'. Сравни выручку каждого магазина и SKU с предыдущим " +
"месяцем, отметь строки, где выручка упала более чем на 30% или выросла более чем на 50%, примени " +
"красную заливку для падений и зеленую для роста, и добавь столбец 'Причина' с " +
"вероятным объяснением в одно предложение. Оставь исходные листы данных без изменений.",
@"C:\retail-ops\output\analyzed.xlsx");
if (result == null || !result.Success)
throw new InvalidOperationException($"Анализ не удался: {result?.ErrorMessage}");
}
Лист Аномалии появляется рядом с исходными данными, с отмеченными строками, заливками и столбцом Причина, примененными согласно инструкции:

3. Отчет. Составьте сводку для руководства из раздела 5 и экспортируйте её. Параметр savePath сам выбирает формат — .xlsx здесь, .pdf для рассылки:
using (Workbook report = new Workbook())
{
report.LoadFromFile(@"C:\retail-ops\output\analyzed.xlsx");
AIResult result = report.AI(options).ExecuteInstruction(
report,
"Подготовь отчет для руководства. Добавь лист 'Сводка' в начало с блоком KPI " +
"(общая выручка, лучший магазин, худший магазин, количество отмеченных аномалий), таблицей " +
"ежемесячных трендов и гистограммой выручки по регионам. Отформатируй для печати и сохрани готовую " +
"книгу.",
@"C:\retail-ops\output\monthly-report.xlsx");
if (result == null || !result.Success)
throw new InvalidOperationException($"Генерация отчета не удалась: {result?.ErrorMessage}");
}
Лист Сводка размещается в начале книги, готовый к печати или экспорту в PDF:

Ключевые вызовы API
-
Workbook.AI(options)— прикрепляет ИИ-обработчик документов к существующему объекту книги -
ExecuteInstruction(doc, instruction, savePath, attachments)— выполняет один этап и записывает результат -
AIResult.Success/AIResult.ErrorMessage— проверяет каждый этап и выводит ошибки
Что бы вы писали без агента
Для контраста, традиционный путь через SDK для тех же трех этапов требует поиска каждого столбца по строке заголовка, жесткого кодирования каждого порога и настройки каждой ячейки вручную — и перенастройки всего этого, когда магазин переименовывает столбец или меняется правило:
foreach (string file in storeFiles)
{
Workbook wb = new Workbook();
wb.LoadFromFile(file);
Worksheet sheet = wb.Worksheets[0];
// Ломается в тот момент, когда магазин называет столбец "Sales" вместо "Revenue".
int revenueCol = FindColumnByHeader(sheet, "Revenue");
int storeCol = FindColumnByHeader(sheet, "Store");
for (int r = sheet.LastRow; r >= 2; r--)
{
double current = double.Parse(sheet.Range[r, revenueCol].Text);
double prior = double.Parse(sheet.Range[r, revenueCol + 1].Text);
double change = (current - prior) / prior;
// Один жестко закодированный порог; сезонный магазин вызывает ложные срабатывания.
if (change < -0.30) sheet.Range[r, revenueCol].Style.Color = Color.Red;
}
// ... затем объединение, затем сводка, затем диаграмма -- сотни строк кода на магазин и месяц.
}

Агент не устраняет необходимость в коде — он устраняет необходимость в коде сопоставления. Разница в том, где живет логика: в поиске столбцов и пороговых значениях или в предложении, которое бизнес может прочитать и отредактировать.
7. Где заканчивается ИИ и начинается логика приложения
Более честный способ подумать о границе, чем список «может и не может»: агент не исключает детерминированную логику приложения — он располагается поверх неё.
Приложение по-прежнему владеет всем, что не имеет отношения к пониманию электронной таблицы:
- Обнаружение и доступ к файлам — поиск файлов во входящих, проверка разрешений и их подготовка
- Планирование рабочего процесса — когда запускается отчет, по какому триггеру и в каком порядке
- Контроль источников данных — какие файлы являются авторизованными входными данными и откуда они приходят
- Обработка ошибок и повторные попытки — что происходит, когда файл отсутствует или этап не удался
- Окончательное утверждение — человек проверяет отмеченные аномалии перед подписанием
- Внешняя сверка — сопоставление отчета с системой учета
Агент владеет частями, которые являются по-настоящему семантическими:
- Понимание — чтение того, что на самом деле означает каждый столбец
- Нормализация — выравнивание разнородных схем в одну модель
- Интерпретация — применение бизнес-правила для решения, что является необычным
- Трансформация — превращение «сырых» данных в сводку, диаграмму и форматирование
- Композиция — сборка финальной книги или PDF
Эта структура полезнее, чем таблица возможностей, потому что она говорит вам, куда направить инженерные усилия. Оставьте детерминированную «сантехнику» в коде — где она тестируема и проверяема — и передайте семантическую работу агенту. Каждая сторона делает то, что у неё получается лучше всего.
8. Добавление ИИ в существующий рабочий процесс .NET Excel
Последнее, что стоит прояснить, — как мало нужно перестраивать, чтобы прийти к этому. Если ваше приложение уже работает с Excel через Spire.Xls, модель документа, которой вы уже владеете, является точкой интеграции:
Workbook
↓
Workbook.AI(options)
↓
ExecuteInstruction(...)
Вы не внедряете новый уровень документа или отдельный сервис обработки документов. Вы добавляете уровень выполнения на естественном языке поверх объекта Workbook, который у вас уже есть. Тот же объект, который открывал, объединял и сохранял ваши файлы, теперь принимает инструкцию и выполняет рабочий процесс, а детерминированный движок Excel гарантирует, что на выходе получится реальный, правильно сформированный файл — с объединенными ячейками, форматами чисел и диаграммами. Тот же паттерн ExecuteInstruction распространяется на документы Word и PDF — см. ИИ-проверка контрактов на C#.
Это ценностное предложение для разработчика Excel, сформулированное в терминах, которыми вы уже мыслите: не «примите ИИ-платформу», а «научите книгу, которую вы уже используете, принимать инструкции». Когда магазин переименовывает столбец или финансовый отдел меняет правило маркировки, исправление — это редактирование предложения, а не перестройка конвейера документов.
9. Часто задаваемые вопросы
Нужно ли мне отправлять данные Excel в облако?
Не обязательно. Spire.Agent.Office работает из вашего собственного приложения, поэтому SDK и обработка документов остаются внутри вашей среды; ваши файлы не загружаются в сторонний сервис для хранения или конвертации. Для анализа контента ИИ нужны соответствующие данные, и они отправляются модели для обработки — это неотъемлемый шаг любого ИИ-рабочего процесса. Если вы развернете свою собственную модель в локальной сети, контент останется полностью в вашей инфраструктуре. Если вы подключаетесь через API размещенной модели, такой как OpenAI или Azure OpenAI, соответствующий контент передается этому провайдеру по сети согласно вашей конфигурации.
Какие форматы Excel поддерживаются?
Ввод охватывает стандартные файлы книг, такие как XLSX и XLS, и агент читает книгу напрямую в её собственном формате. Вывод можно сохранить как XLSX, XLS, CSV, PDF или HTML, поэтому готовый отчет может сразу отправиться в архив или список рассылки.
Может ли это заменить мою финансовую или операционную проверку?
Нет. Агент автоматизирует чтение, нормализацию, анализ и форматирование — часы, которые аналитик тратит каждый месяц, — но окончательное утверждение остается за человеком-рецензентом. Относитесь к отмеченным аномалиям как к списку для проверки, а не как к уже принятому решению.
Чем это отличается от вставки данных в ChatGPT?
Чат-модель может сказать вам, что выглядит необычно, но не может поместить этот ответ в стилизованную книгу со сводным листом, условным форматированием и диаграммой, и не может экспортировать PDF. ИИ-агент Excel объединяет суждение языковой модели с детерминированным уровнем Excel, поэтому на выходе получается реальный, правильно сформированный файл, который ваша команда может открыть и распространить.
Могу ли я использовать свою собственную ИИ-модель?
Да. Spire.Agent.Office поддерживает гибкую интеграцию ИИ-моделей и совместим с основной ИИ-инфраструктурой, включая API размещенных моделей и частные развернутые модели. Вы можете направить агента на свою собственную конечную точку. По вопросам о том, какие провайдеры поддерживаются в вашем развертывании, свяжитесь с нами.
Готовы автоматизировать отчетность в Excel?
Консолидация, анализ аномалий и генерация отчетов — это самые быстрые способы получить пользу: направьте агента на папку входящих, опишите отчет и получите отформатированную книгу или PDF. Следуйте руководству Начало работы, чтобы запустить свой первый рабочий процесс с электронными таблицами в .NET.
Дополнительное чтение
- Руководство по автоматизации анализа и ранжирования оценок студентов — рабочий процесс Excel, который агент выполняет от начала до конца
- ИИ-проверка контрактов на C# — тот же паттерн на основе инструкций, примененный к документам Word и PDF
- Обзор продукта Spire.Agent.Office — ИИ-агент SDK для всех форматов документов Office