复杂邮件合并(CSV到Word,CSV到PDF或其他)

时间:2019-03-13 18:39:55

标签: csv ms-access pdf ms-word

问题: 如何为Word或PDF编写ifStatement,以计算每个匹配结果多行?

用法: 15年前,当我能够使用MS Access时,我试图做的事情似乎很简单,而且非常容易,但是由于Access不再是可能,所以我希望有人有一个合理的解决方案。

内容: 我正在尝试从CSV(或任何格式的电子表格)生成对帐单/发票,并将其转换为美观的报表布局。假设这些列看起来像这样:

First Name | Last Name | Account | Address | Item | Description | Item Total
Jane | Smith | 123 | 111 Main St | Ice Cream | it's really cold | $100.00

这非常容易,我可以在10分钟内在Word中完成,并使它“漂亮”。

Simple Invoice in Word


但是如果每个发票中有多个项目怎么办?
因此,也许CSV看起来像:

First Name | Last Name | Account | Address | Item | Description | Item Total
Jane | Smith | 123 | 111 Main St | Ice Cream | it's really cold | $100.00
Jane | Smith | 123 | 111 Main St | Hot Dogs | all beef, all the time | $200.00

我仍然希望每人只有一张发票,但不确定如何在Word中执行 if声明,该消息会说“如果每人有多个项目,请放在新行,然后将它们总计在一起”

enter image description here


如果可以使多行工作,我很高兴将CSV转换为PDF可填充格式-我只是无法弄清楚那部分。
其他选项:我查看了OpenOffice“ Base”,但无法获得用于非常自定义报表的漂亮表格。我简短地研究了如何在AWS上执行类似的操作,但是没有任何运气。我认为Microsoft不再具有Access之类的功能

1 个答案:

答案 0 :(得分:0)

您可以为此使用Word的目录/目录邮件合并功能(术语取决于Word版本)。要查看如何使用Word支持的任何邮件合并数据源,请在以下位置查看我的 Microsoft Word目录/目录邮件合并教程http://www.msofficeforums.com/mail-merge/38721-microsoft-word-catalogue-directory-mailmerge-tutorial.html 要么: http://www.gmayor.com/Zips/Catalogue%20Mailmerge.zip 该教程涵盖了从列表创建到在多记录表中以字母形式插入和计算值的所有内容。在尝试使用本教程随附的mailmerge文档之前,请先阅读本教程。

取决于您要实现的目标,为此的字段编码可能很复杂。但是,由于本教程文档的所有示例均包含工作域代码,因此大多数艰苦的工作已经为您完成-除了将相关域代码复制/粘贴到自己的mailmerge主文档中,您应该能够做的只是一点,替换/插入您自己的字段名称,并调整格式以获得所需的结果。有关一些可行的示例,请参阅以下文章的附件: http://www.msofficeforums.com/mail-merge/9180-mail-merge-duplicate-names-but-different-dollar.html#post23345 http://www.msofficeforums.com/mail-merge/11436-access-word-creating-list-multiple-records.html#post30327

另一种选择是使用普通的“字母”邮件合并主文档中的DATABASE字段和宏来驱动该过程。有关此方法的概述,请参见:http://answers.microsoft.com/en-us/office/forum/office_2010-word/many-to-one-email-merge-using-tables/8bce1798-fbe8-41f9-a121-1996c14dca5d 相反,如果您使用的是关系数据库或带有单独表的Excel工作簿,而该表仅包含每个分组条件的单个实例,则可以使用普通“字母”邮件合并主文档中的DATABASE字段,而无需宏。可以在以下位置找到此方法的概述: 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 但是,DATABASE字段的问题在于它不会提供您想要的总数。不过,如果您沿宏路线走下去,则无需花费太多代码即可将合计行附加到结果表中。

或者,您可能要尝试以下一种多对一邮件合并加载项: 格雷厄姆市长,http://www.gmayor.com/ManyToOne.htm;要么 Doug Robbins在https://onedrive.live.com/?cid=5AEDCB43615E886B&id=5AEDCB43615E886B!566

PS:虽然我知道StackOverflow倾向于将答案的实质内容发布在此处而不是与之链接,但这种情况下的复杂性实在太大了,无法解决其中,不能在此处发布实际的域代码或包含它们的文档。