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

StackOverflow https://stackoverflow.com/questions/289922

Вопрос

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

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

С уважением Ричард

Это было полезно?

Решение

Я попытался сам написать какой-нибудь код для этой цели, но сдался.Теперь я использую сторонний продукт: Как Отдельные Слова и я вполне доволен этим компонентом.

Для этого не нужен Microsoft Word на компьютере.

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

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

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

Другие советы

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

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

Рассматривали ли вы возможность использования Open XML SDK от 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 на сервере в качестве шаблона, распакуйте архив docx, вставьте соответствующий раздел XML, который вы хотите изменить, в свой код VB и добавьте код для заполнения частей, которые вы хотите изменить.По вашему описанию трудно сказать, будет ли это соответствовать вашим требованиям, но я бы посоветовал изучить это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top