Слияние почты с использованием Open XML SDK - PullRequest
2 голосов
/ 31 марта 2009

У меня есть DataTable с 3 столбцами (a, b, c) и файл docx с соответствующими полями MailMerge. Что я хотел бы сделать, так это выполнить слияние с документом с данными.

Предположим, что вы можете записать на жесткий диск (если вам нужно создать CSV и т. Д. Для выполнения слияния и т. Д.), У вас нет слова, Excel и т. Д., Open XML SDK установлен, но в равной степени мы можем установить все остальное.

С точки зрения ответа, преобразование входных данных во все, что нужно, на самом деле не проблема, проблема заключается в как выполнить слияние почты в Open XML SDK (или другом БЕСПЛАТНОМ API) .

В качестве примечания к выводу должен быть один файл с n страницами (где n - количество строк в данных), то есть не n документов (хотя я не возражаю, если объединение документов выполняется в конец).

(Я должен добавить, что я не привязан к концепции MailMerge, так как сработала бы возможность просто заменить, например - хотя, очевидно, для этого потребуется объединить файлы в конце ...)

1 Ответ

0 голосов
/ 22 мая 2009

У меня это работает довольно ужасно - в основном - на данный момент, алгоритм следует так:

  1. Распаковать файл docx
  2. Читать в document.xml (в строку)
  3. строка. Заменить поля
  4. Распаковать на временный документ
  5. Объединить все созданные временные документы

Фактический код для слияния документов взят из блога Эрика Уайта: http://blogs.msdn.com/ericwhite/archive/2009/02/05/move-insert-delete-paragraphs-in-word-processing-documents-using-the-open-xml-sdk.aspx

...