Каков наилучший способ заполнения шаблона Word 2007 В C#?

Мне нужно заполнить документ Word 2007 из кода, включая повторяющиеся разделы таблицы - в настоящее время я использую преобразование XML в документе.xml-часть docx, но это очень много времени для настройки (каждый раз, когда вы редактируете документ шаблона, вы должны воссоздать преобразование.xsl-файл, который может занять целый день, чтобы сделать для сложных документов).

есть ли лучший способ, предпочтительно тот, который не требует от вас выполнить Word 2007 во время с процесс?

с уважением Ричард!--1-->

5 ответов


Я попытался написать код для этой цели, но сдался. Теперь я использую продукт 3rd party:Aspose Слова и я вполне доволен этим компонентом.

ему не нужно Microsoft Word на машине.

"Aspose.Words позволяет приложениям .NET и Java читать, изменять и писать документы Word® без использования Microsoft Word®."

"Aspose.Слова поддерживает широкий спектр функций, включая создание документов, манипулирование контентом и форматированием, мощные возможности слияния почты, всесторонняя поддержка DOC, OOXML, RTF, WordprocessingML, HTML, OpenDocument и PDF форматов. Aspose.Слова действительно самый доступный, быстрый и многофункциональный компонент Word на рынке."

отказ от ответственности: Я не связан с этой компанией.


поскольку файл DOCX-это просто ZIP-файл, содержащий структуру папок с изображениями и XML-файлами, вы должны иметь возможность манипулировать этими XML-файлами с помощью нашего любимого API манипуляции XML. Спецификация формата известна как WordprocessingML, часть Office Open XML standard.

Я думал, что упомяну об этом в случае, если сторонний инструмент, предложенный splattne, не является вариантом.


вы рассматривали возможность использования пакета SDK Open XML от Microsoft? Единственная зависимость-от .NET 3.5.

документация: http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx

скачать: http://www.microsoft.com/downloads/details.aspx?familyid=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en


используйте invoke docx lib. он поддерживает табличные данные (http://invoke.co.nz/products/help/docx_tables.aspx). Больше информации на http://invoke.co.nz/products/docx.aspx


вы рассматривали использование VB? Можно создать отдельную сборку для заполнения документа.

Я знаю, что вы ищете решение C#, но поддержка XML-литералов-это одна из областей, где поддержка XML-литералов может помочь вам заполнить документ. Создайте документ в Word to server в качестве шаблона, распакуйте docx, вставьте соответствующий раздел XML, который вы хотите изменить, в код VB и добавьте код для заполнения частей, которые вы хотите изменить. Трудно сказать по вашему описание если это будет соответствовать вашим требованиям, но я бы предложил изучить его.