Вопрос

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

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

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

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

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

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

Решение

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

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

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

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