Слияние почты с использованием Open XML SDK
Вопрос
У меня есть таблица данных с 3 столбцами (a, b, c) и файл docx с соответствующими настроенными полями MailMerge.Что я хотел бы сделать, так это выполнить почтовое слияние документа с данными.
Предположим, что вы можете выполнить запись на жесткий диск (если вам нужно создать CSV и т.д. Для выполнения слияния и т.д.), вы не надо есть Word, excel и т.д., Open XML SDK является установлено, но в равной степени мы можем установить и все остальное.
С точки зрения ответа, преобразование входных данных во все, что необходимо, на самом деле не является проблемой, проблема в том, как для выполнения слияния почты в Open XML SDK (или другом БЕСПЛАТНОМ API).
В качестве дополнительного примечания, результатом должен быть один файл с n страницами (где n - количество строк в данных), т. е.не n документов (хотя я не возражаю, если объединение документов будет выполнено в конце).
(Я должен добавить, я не привязан к концепции MailMerge, например, возможность просто выполнить замену сработала бы - хотя, очевидно, что тогда потребуется объединить файлы вместе в конце ...)
Решение
У меня это работает довольно ужасным образом - в основном - на данный момент алгоритм следует этому:
- Распакуйте архивный файл docx
- Читать в document.xml (в строку)
- строка.Замените поля
- Повторный доступ к временному docx
- Объединить все созданные временные документы
Фактический код для объединения документов взят из блога Эрика Уайта : http://blogs.msdn.com/ericwhite/archive/2009/02/05/move-insert-delete-paragraphs-in-word-processing-documents-using-the-open-xml-sdk.aspx