我有一个包含 3 列(a、b、c)的 DataTable 和一个设置了相应 MailMerge 字段的 docx 文件。我想做的是对包含数据的文档执行邮件合并。
假设您可以写入硬盘(如果您需要创建一个 csv 等来进行合并等),您没有 word、excel 等,打开 XML SDK 已安装,但同样我们可以安装其他任何东西。
就答案而言,将输入数据转换为任何需要的数据并不是真正的问题,问题是如何在 Open XML SDK(或其他免费 API)中执行邮件合并).
作为旁注,输出应该是一个有 n 页的文件(其中 n 是数据中的行数),即不是 n 个文档(尽管我不介意文档合并是否在结束)。
(我应该补充一点,我不受 MailMerge 概念的束缚,例如能够仅进行替换就可以了 - 尽管显然这需要在最后将文件合并在一起......)
请您参考如下方法:
我的工作方式非常糟糕 - 基本上 - 目前,算法如下:
- 解压docx文件
- 读入 document.xml(到一个字符串)
- string.替换字段
- 重新压缩到临时 docx
- 合并所有创建的临时文档
合并文档的实际代码来自 Eric White 的博客:http://blogs.msdn.com/ericwhite/archive/2009/02/05/move-insert-delete-paragraphs-in-word-processing-documents-using-the-open-xml-sdk.aspx
