Коллеги прислали ссылку на описание процесса генерации документов формата OpenXML.
Это наиболее быстрый и эффективный способ изо всех мне известных.
Для генерации потребуется Open XML SDK 2.0 и Open XML SDK 2.0 Productivity Tool for Microsoft Office.
Последовательность шагов при создании документа следующая:
- Создаём необходимый документ в Microsoft Office Word или Excel.
- Открываем созданный документ в Open XML SDK 2.0 Productivity Tool и жмём кнопку "Reflect Code".

- Вставляем сгенерированный утилитой класс генерации документа (код на C#) в своё приложение.
Теперь остаётся только раскидать по сгенерированному коду поля с динамическими значениями и создать документ:
(new GeneratedClass()).CreatePackage(@"D:\Temp\Output.docx");
Или так (для отдачи файла клиенту из ASP.NET-приложения):
byte[] reportBinary = (new GeneratedClass()).CreatePackageAsBytes();
Единственный минус, на мой взгляд, сложность внесения исправлений в используемый шаблон. Тут или заново вставлять код, заполняющий динамические поля, либо сливать новый код (генерируемый утилитой) документа со старым.
Вот тут даже видео есть, оказывается, технология-то - бородатая.
Добавить комментарий