# Форматы DOCX и XLSX: когда от ИИ требуется полноценный финальный документ

> Практическое руководство по созданию и обработке документов DOCX и таблиц XLSX с помощью ИИ: сравнение с Markdown и CSV, промпт-инжиниринг, работа с формулами и автоматизация в коде.

## 1. Четыре формата — четыре разные задачи: Text, CSV, DOCX и XLSX

Одна из самых распространенных ошибок при взаимодействии с искусственным интеллектом — сразу требовать: *«Сделай Word-документ»* или *«Выгрузи всё в Excel»*. Расширение файла само по себе не добавляет ценности, если выбранный формат не соответствует следующему этапу рабочего процесса.

```mermaid
flowchart TD
    A["Входной запрос / Сырые данные"] --> B{"Какова цель использования результата?"}
    B -->|Обсуждение, драфт, код, промежуточный анализ| C["Текст / Markdown<br><i>(Максимальная скорость, гибкость в чате)</i>"]
    B -->|Импорт в БД, миграция, машинный парсинг| D["CSV / JSON<br><i>(Легкий формат, плоская структура данных)</i>"]
    B -->|Презентация клиенту, печать, фирменный отчет| E["DOCX<br><i>(Стили, иерархия H1-H3, колонтитулы, брендбук)</i>"]
    B -->|Расчеты, бизнес-план, ежедневный учет| F["XLSX<br><i>(Многостраничность, динамические формулы, фильтры)</i>"]
```

### Матрица выбора оптимального формата

| Формат | Когда использовать | Главные преимущества | Когда избегать |
| :--- | :--- | :--- | :--- |
| **Текст / Markdown** | Черновики, итеративное обсуждение, генерация кода | Мгновенный ответ, отсутствие бинарных артефактов | Финальная отчетность для клиентов и руководства |
| **CSV** | Выгрузка больших массивов данных (>10 000 строк), импорт в CRM | Универсальность, минимальный размер | Расчеты, многостраничные отчеты, форматирование |
| **DOCX** | Регламенты, коммерческие предложения, методички, договоры | Корпоративная верстка, стили Word, печать | Промежуточные заметки и сырой код |
| **XLSX** | Бюджеты, контент-планы, финансовые модели, дашборды | Живые формулы, итоги, фильтры, условное форматирование | Простой обмен списками между скриптами |

> [!NOTE]
> Если вы просите модель разработать концепцию отчета или структуру курса, генерировать DOCX преждевременно: удобнее сначала отшлифовать текст в чате. Форматы DOCX и XLSX должны появляться тогда, когда сам файл становится конечным продуктом.

---

## 2. Когда заказывать DOCX: от черновика к финальному артефакту

DOCX необходим в тех случаях, когда документ предназначен для чтения человеком, совместного рецензирования в офисном пакете или официального документооборота.

### Что обеспечивает DOCX в отличие от простого текста

1. **Строгая типографическая иерархия:** Использование семантических стилей Word (*Заголовок 1*, *Заголовок 2*, *Обычный текст*), благодаря чему документ автоматически формирует интерактивное оглавление.
2. **Единый визуальный шаблон:** Возможность изменения шрифта или межстрочного интервала во всем 50-страничном документе в один клик через панель стилей.
3. **Оформление сложных таблиц:** Фиксированная ширина колонок, заливка шапок и аккуратное выравнивание чисел.
4. **Служебная разметка:** Номера страниц, колонтитулы с названием проекта, титульные листы и разрывы разделов.

![Структура таблицы в документах DOCX и XLSX](/api/guides-media/automation/docx-xlsx-document-formats-for-ai/images/docx-xlsx-document-formats-for-ai-extra-01.webp)

```markdown
| Этап | Ответственный | Срок |
| :--- | :--- | :--- |
| **Подготовка** | Маркетолог | 3 дня |
| **Проверка** | Руководитель направления | 1 день |
| **Публикация** | Контент-менеджер | 1 день |
```

> [!TIP]
> Если вам нужно внести точечные правки в текст одного абзаца — работайте прямо в чате. Создавать DOCX стоит тогда, когда финальный документ готов к передаче стейкхолдерам или отправке в архив.

---

## 3. Составление безупречного ТЗ для генерации DOCX

Фраза *«Сделай мне красивый файл в Word»* заставляет ИИ действовать наугад. Для получения предсказуемого результата используйте инженерный подход к составлению запроса.

```mermaid
flowchart LR
    A["1. Целевая аудитория и роль"] --> B["2. Жесткая структура разделов"]
    B --> C["3. Внутренние компоненты (Таблицы/Списки)"]
    C --> D["4. Стилистические требования (Шрифты/Поля)"]
    D --> E["Готовый бизнес-документ DOCX"]
```

### Пять обязательных компонентов промпта

1. **Назначение документа:** Для кого пишется текст (совет директоров, техническая поддержка, клиент в B2B-сегменте).
2. **Перечень обязательных разделов:** Фиксируйте последовательность: *Титульный лист $\rightarrow$ Резюме $\rightarrow$ 4 этапа $\rightarrow$ Риски $\rightarrow$ Бюджет*.
3. **Требования к компонентам:** Что подать маркированным списком, что — нумерованным регламентом, а что — сравнительной таблицей.
4. **Стилевой гайдлайн:** Желаемый шрифт (*Calibri*, *Aptos*, *Inter*), межстрочный интервал (1.15) и акцентные цвета для плашек.
5. **Границы неприкосновенности (при редактировании):** Четкий запрет менять юридические формулировки или спецификации во входящем тексте.

### Сравнение запросов: слабый vs точный

:::tabs
@tab Слабый запрос
```text
Сделай регламент работы отдела продаж в Word.
```
*Результат:* Сплошной текст без стилей, случайные шрифты, отсутствие титульной страницы, трата времени на ручную переверстку.
@tab Профессиональное ТЗ
```text
Создай готовый внутренний регламент в формате DOCX: «Работа менеджеров в CRM».
Аудитория: новые сотрудники отдела B2B-продаж.
Структура:
1. Титульный лист с названием и версией документа.
2. Автоматическое оглавление на основе Заголовков 1 и 2 уровней.
3. Пошаговый процесс квалификации лида (нумерованный список действий).
4. Таблица «Статусы сделок, обязательные поля и дедлайны».
5. Матрица типичных ошибок и методов их устранения.
6. Финальный чек-лист готовности к звонку.
Оформление: сдержанный деловой стиль, шрифт Aptos 11pt, поля 2 см, темно-синий цвет (#1E40AF) для шапок таблиц.
```
:::

---

## 4. Когда нужен XLSX: динамические данные, листы и формулы

XLSX выбирают в случаях, когда файл должен стать живым расчетным инструментом, а не статичным снимком чисел.

### Признаки того, что вам нужен именно XLSX:

- Данные требуют регулярного обновления и перерасчета итогов.
- Необходимо связать несколько источников через формулы (`SUM`, `AVERAGE`, `VLOOKUP`, `XLOOKUP`).
- Проект имеет несколько измерений (например: отдельные листы для доходов, расходов и сводного дашборда).
- Пользователи будут применять фильтры по статусам, менеджерам или датам.
- Требуется условное форматирование для мгновенной визуализации рисков (подсветка просроченных платежей).

```mermaid
flowchart TD
    subgraph Excel_Workbook["Структура рабочей книги XLSX"]
        S1["Лист 1: 'Исходные данные'<br><i>(Чистый реестр сделок, даты, суммы)</i>"]
        S2["Лист 2: 'Расчеты'<br><i>(Динамические формулы, коэффициенты, маржа)</i>"]
        S3["Лист 3: 'Дашборд'<br><i>(Сводные итоги, ключевые KPI, диаграммы)</i>"]
    end
    S1 -->|Ссылаются формулы| S2
    S2 -->|Агрегирует показатели| S3
```

---

## 5. XLSX против CSV: ключевые архитектурные различия

Из-за внешнего сходства табличных представлений начинающие разработчики часто путают эти форматы или выбирают неподходящий инструмент.

| Параметр | CSV (Comma-Separated Values) | XLSX (Microsoft Excel OpenXML) |
| :--- | :--- | :--- |
| **Природа формата** | Плоский текстовый поток с разделителями | Архивированный пакет XML-файлов и медиа (ZIP) |
| **Многостраничность** | Только 1 плоский лист | Неограниченное количество именованных листов |
| **Поддержка формул** | Отсутствует (хранятся только сырые строки) | Полная поддержка вычислительного движка Excel |
| **Форматирование** | Отсутствует (без цвета, шрифтов, ширины колонок) | Шрифты, границы, заливка, форматы чисел/валют |
| **Фильтры и валидация** | Отсутствуют | Автофильтры, выпадающие списки, блокировка ячеек |
| **Объем файла** | Минимальный (идеален для миллионов строк) | Выше из-за служебных метаданных |

> [!WARNING]
> Если сохранить сложную многостраничную книгу Excel с формулами в формат CSV, все дополнительные листы, диаграммы и математические связи будут безвозвратно утеряны!

---

## 6. Инженерия формул, типов данных и условного форматирования в XLSX

Главное преимущество качественного файла XLSX, созданного ИИ, заключается в правильном разделении сырых данных и вычислительной логики.

### Формулы вместо статичных чисел

Всегда требуйте от ИИ записывать в итоговые ячейки реальные формулы:
- ❌ **Плохо:** ИИ сам посчитал сумму в памяти и записал в ячейку `D20` число `45200`. (При изменении исходных цен итог останется неверным).
-  **Правильно:** ИИ записал в ячейку `D20` формулу `=SUM(D2:D19)`. (Таблица остается интерактивной навсегда).

### Строгая типизация данных

Каждая колонка должна иметь четко назначенный формат:
- **Даты:** формат `DD.MM.YYYY` или `YYYY-MM-DD` (чтобы Excel сортировал хронологически, а не как текст).
- **Денежные суммы:** числовой формат с разделителем тысяч и символом валюты (`12 500,00 ₽` или `$12,500.00`).
- **Проценты:** числовой формат процентов (`15.4%`), а не текстовая строка `"15%"`.

### Динамическое условное форматирование

Автоматические цветовые индикаторы помогают оценивать положение дел без вычитывания сотен строк:
- Зеленый градиент: выполнение плана $\ge 100\%$.
- Красная подсветка: сумма расходов превышает лимит или дедлайн просрочен.

---

## 7. Составление ТЗ для генерации XLSX-таблиц

Чтобы получить от искусственного интеллекта зрелую таблицу, сформулируйте пять базовых блоков требований.

```mermaid
flowchart TD
    A["1. Архитектура листов"] --> B["2. Реестр столбцов и типы данных"]
    B --> C["3. Математические формулы и связи"]
    C --> D["4. Фильтры, сортировка и выпадающие списки"]
    D --> E["5. Сводные итоги и визуальные диаграммы"]
```

### Эталонный промпт для расчетного файла

```text
Создай полноценную рабочую книгу XLSX для расчета годового бюджета IT-проекта на 2027 год.

Структура листов:
1. «Параметры»: почасовые ставки специалистов, налоговые коэффициенты, курсы валют.
2. «Расходы»: реестр статей (категория, исполнитель, ставка, количество часов, сумма).
3. «Сводка»: помесячный отчет с плановыми и фактическими расходами, отклонениями и % выполнения.

Требования к вычислениям:
- Сумму в «Расходах» считать через формулу умножения часов на ставку из листа «Параметры».
- В «Сводке» использовать формулы SUMIF/SUMIFS для агрегации по категориям.
- Добавить расчет отклонения: =(Факт - План) / План.

Оформление:
- Закрепить первую строку (заголовки) на всех листах.
- Включить автофильтры на листе «Расходы».
- Денежные значения оформить в валюте USD с двумя знаками после запятой.
- На листе «Сводка» добавить столбчатую диаграмму «План vs Факт по месяцам».
```

---

## 8. Работа с шаблонами: создание с нуля vs обновление существующих файлов

Создание файла с чистого листа и обновление уже существующего корпоративного шаблона — это две принципиально разные операции.

```mermaid
flowchart LR
    subgraph From_Scratch["Создание с нуля"]
        A1["Описание архитектуры"] --> B1["Проектирование сетки"] --> C1["Генерация нового файла"]
    end
    subgraph By_Template["Работа по шаблону"]
        A2["Загрузка эталона"] --> B2["Анализ связей и формул"] --> C2["Аккуратное обновление ячеек"]
    end
```

### Правила безопасного обновления шаблонов

1. **Зафиксируйте неприкосновенные элементы:** Четко укажите модели: *«Не меняй названия листов, размер шрифтов, шапки таблиц и формулы в колонках F:H»*.
2. **Укажите точные границы вставки новых строк:** Например: *«Добавь новые строки транзакций в конец таблицы перед итоговой строкой 'Итого' и расширь диапазон в формуле SUM»*.
3. **Сохранение макросов и подключений:** Если оригинальный файл содержит скрипты VBA или подключения к базам данных, убедитесь, что скрипт генерации не повредит бинарные части книги.

---

## 9. Автоматизация в коде: как ИИ и бэкенд генерируют DOCX и XLSX

Когда AI-агенты работают в production-окружении (например, через Claude Code, LangChain или кастомные микросервисы), генерация файлов выполняется не вручную, а через программные библиотеки.

:::tabs
@tab Python (python-docx)
```python
from docx import Document
from docx.shared import Inches, Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document()

# Настройка стилей документа
title = doc.add_heading("Отчет по продуктивности команды", level=0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER

p = doc.add_paragraph("Документ сформирован автоматически на основе телеметрии за 3 квартал.")
p.runs[0].font.size = Pt(11)

# Добавление таблицы с данными
table = doc.add_table(rows=1, cols=3)
table.style = 'Light Shading Accent 1'
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Спринт'
hdr_cells[1].text = 'Задач закрыто'
hdr_cells[2].text = 'Эффективность'

data = [("Sprint 41", "34", "94%"), ("Sprint 42", "41", "98%")]
for sprint, count, eff in data:
    row_cells = table.add_row().cells
    row_cells[0].text = sprint
    row_cells[1].text = count
    row_cells[2].text = eff

doc.save("team_report.docx")
```
@tab Python (openpyxl)
```python
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment

wb = Workbook()
ws = wb.active
ws.title = "Бюджет"

# Создание и стилизация заголовков
headers = ["Категория", "План ($)", "Факт ($)", "Отклонение ($)"]
ws.append(headers)

header_fill = PatternFill(start_color="1E40AF", end_color="1E40AF", fill_type="solid")
header_font = Font(color="FFFFFF", bold=True)

for col_num in range(1, 5):
    cell = ws.cell(row=1, column=col_num)
    cell.fill = header_fill
    cell.font = header_font
    cell.alignment = Alignment(horizontal="center")

# Добавление строк данных с динамическими формулами
rows = [
    ["Серверы AWS", 2500, 2350],
    ["Маркетинг", 5000, 5600],
    ["Подписки на ПО", 800, 800],
]

for row_idx, data in enumerate(rows, start=2):
    ws.append([data[0], data[1], data[2], f"=C{row_idx}-B{row_idx}"])

# Итоговая строка с формулами
ws.append(["Итого", "=SUM(B2:B4)", "=SUM(C2:C4)", "=SUM(D2:D4)"])
ws.cell(row=5, column=1).font = Font(bold=True)

wb.save("project_budget.xlsx")
```
@tab TypeScript (exceljs)
```typescript
import ExcelJS from 'exceljs';

async function generateSpreadsheet() {
  const workbook = new ExcelJS.Workbook();
  const sheet = workbook.addWorksheet('Sales Data');

  sheet.columns = [
    { header: 'Продукт', key: 'product', width: 25 },
    { header: 'Количество', key: 'qty', width: 15 },
    { header: 'Цена за ед.', key: 'price', width: 15 },
    { header: 'Итого', key: 'total', width: 18 }
  ];

  sheet.addRow({ product: 'Cloud Gateway License', qty: 5, price: 1200, total: { formula: 'B2*C2' } });
  sheet.addRow({ product: 'Enterprise Support SLA', qty: 1, price: 3500, total: { formula: 'B3*C3' } });

  await workbook.xlsx.writeFile('enterprise_sales.xlsx');
}
```
:::

---

## 10. Протокол верификации и валидации сгенерированных файлов

Никогда не отправляйте автоматически созданные файлы клиентам или руководству без предварительной проверки.

### Протокол контроля качества для DOCX

- [ ] **Семантическая структура:** Документ использует штатные стили заголовков (*Heading 1*, *Heading 2*), а не просто жирный текст с увеличенным размером шрифта.
- [ ] **Целостность таблиц:** Таблицы не выходят за границы печатной страницы, текст в ячейках не перекрывается и не обрезается.
- [ ] **Разрывы страниц:** Отсутствуют «висячие» заголовки на последней строке листа без последующего текста.
- [ ] **Служебные поля:** Проверена нумерация страниц (первая страница скрыта при необходимости) и оглавление.

### Протокол контроля качества для XLSX

- [ ] **Живые формулы:** Итоговые ячейки содержат формулы (`=SUM()`), а не статичные числа.
- [ ] **Диапазоны формул:** Проверено, что диапазоны итогов охватывают все внесенные строки, включая последнюю.
- [ ] **Тест на перерасчет:** Измените одно базовое число — вся модель должна автоматически обновить результат.
- [ ] **Форматы отображения:** Денежные и процентные ячейки имеют надлежащее форматирование без ошибок `#VALUE!`, `#REF!` или знаков `###`.

---

## 11. Готовая библиотека мастер-промптов и чек-лист внедрения

Используйте эти проверенные шаблоны как надежную основу для регулярной автоматизации.

### Майстер-промпт для регламентов и отчетов в DOCX

```markdown
Действуй как ведущий технический писатель. Создай готовый официальный документ в формате DOCX.

Тема: [Укажите тему, например: Регламент информационной безопасности удаленных рабочих мест]
Целевая аудитория: [Укажите аудиторию]

Структура документа:
1. Титульный лист (Название, версия, автор, дата).
2. Аннотация и цели документа.
3. Нормативные требования (нумерованный регламент действий).
4. Сводная таблица: «Угроза | Уровень риска | Превентивное действие | Ответственный».
5. Матрица эскалации инцидентов.
6. Финальный чек-лист самопроверки для сотрудника.

Требования к оформлению:
- Шрифт основного текста: Aptos или Calibri 11pt, межстрочный интервал 1.15.
- Стили заголовков: Heading 1 (18pt, Bold), Heading 2 (14pt, SemiBold).
- Цветовая схема таблиц: темно-синий акцент для шапок, чередование строк с легким серым фоном.
- Вставь оглавление в начале документа.
```

### Майстер-промпт для финансовых моделей в XLSX

```markdown
Действуй как финансовый аналитик. Создай полноценную расчетную книгу XLSX для бизнес-плана.

Требуются следующие отдельные листы:
1. «Параметры»: входящие допущения (себестоимость, цена продажи, конверсии, налоги).
2. «Продажи»: помесячный прогноз количества сделок и валового дохода по формулам.
3. «OPEX»: перечень операционных расходов по категориям (аренда, серверы, ФОТ).
4. «P&L Сводка»: помесячный отчет о прибылях и убытках (Доход, Расходы, EBITDA, Чистая прибыль).

Требования к логике:
- Запрещено хардкодить расчетные значения — все цифры на листе «P&L Сводка» должны ссылаться через формулы на листы «Продажи» и «OPEX».
- Настрой денежный формат USD для всех финансовых ячеек.
- Добавь условное форматирование для маржинальности: зеленый при >=25%, красный при <10%.
- Создай комбинированную диаграмму на листе «P&L»: столбцы — доход, линия — чистая прибыль.
```

### Итоговый чек-лист выбора формата

- [ ] Нужен текст для согласования, генерации идей или кода $\rightarrow$ **Чат / Markdown**.
- [ ] Нужны плоские структурированные данные для импорта в базы или скрипты $\rightarrow$ **CSV**.
- [ ] Нужен презентабельный документ для чтения человеком, печати и архива $\rightarrow$ **DOCX**.
- [ ] Нужна рабочая интерактивная таблица с формулами, аналитикой и листами $\rightarrow$ **XLSX**.