我有一个定制系统,该系统可产生两个数据源(即2个csv文件):一个具有基本标头信息。为客户和另一个与客户交易。全部都在同一文件中,具有唯一的客户端参考号。
是否可以设置邮件合并,以使Word为每个客户端生成一个字母,并在该字母中包含带有交易行的表格?如上所述,具有事务处理的表将包含来自另一个数据源(csv文件)的数据。
谢谢
答案 0 :(得分:0)
如果将交易文件另存为Excel工作簿,则很有可能-前提是带有基本标头信息的文件至少包含在交易文件中找到的一个字段。该解决方案需要一些现场编码(编程)才能实现:
首先,创建一个Word mailmerge主文档,并将其连接到具有基本标题信息的文件。
第二,在mailmerge主文档中创建一个DATABASE字段,其代码如下:
{DATABASE \d "{FILENAME \p}/../Transactions.xlsx" \s "SELECT [TransDate], [TransID], [TransAmt] FROM [Transactions$] WHERE [ClientID] = {MERGEFIELD ClientID} ORDER BY [InvoiceDate]" \l "9" \b "47" \h}
其中“ ClientID”是在基本标头和交易文件中都可以找到的字段,[Transactions $]中的“交易”是工作表名称。
正确完成设置后,合并将能够为每位客户产生一封信函,并在表格中显示相关交易。
有关此方法的更详细讨论,请参见: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_word-mso_winother-mso_2010/mail-merge-to-a-word-table-on-a-single-page/4edb4654-27e0-47d2-bd5f-8642e46fa103。有关工作示例,请参见: http://www.msofficeforums.com/mail-merge/37844-mail-merge-using-one-excel-file-multiple.html
注意:以上示例中的字段括号对(即“ {}”)都是通过Ctrl-F9(在Mac上为Cmd-F9,如果您使用使用笔记本电脑时,您可能需要使用Ctrl-Fn-F9);您不能简单地键入它们或从此消息中复制并粘贴它们。通过任何标准的Word对话添加它们也不可行。现场结构中表示的空格都是必需的。