首页 > 解决方案 > 复杂邮件合并(CSV 到 Word、CSV 到 PDF 或其他)

问题描述

问题: 您如何为 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 完成并使其“漂亮”。

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 语句,上面写着“如果每人有多个项目,请将它们放在新行上,然后将它们加在一起”

在此处输入图像描述


如果我可以让多行工作,我会很高兴让 CSV 进入 PDF 可填写表格 - 我只是无法弄清楚那部分。
其他选项:我查看了 OpenOffice“Base”,但无法为非常自定义的报告找到一个不错的表单。我简要研究了如何在 AWS 上做这样的事情,但没有任何运气。我认为微软不再有类似 Access 的东西了

标签: csvms-accesspdfms-word

解决方案


为此,您可以使用 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 文档之前,请务必阅读本教程。

根据您要实现的目标,为此的字段编码可能很复杂。但是,由于教程文档包含所有示例的工作域代码,大部分艰苦的工作已经为您完成 - 您应该能够做的只是将相关域代码复制/粘贴到您自己的邮件合并主文档中,替换/插入您自己的字段名称并调整格式以获得您想要的结果。对于一些工作示例,请参阅以下帖子的附件: 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-单页/4edb4654-27e0-47d2-bd5f-8642e46fa103 有关工作示例,请参阅: http ://www.msofficeforums.com/mail-merge/37844-mail-merge-using-one-excel-file-multiple.html 但是,DATABASE 字段的问题在于它不会提供您所追求的总数。不过,如果您沿着宏路线前进,则不需要太多代码即可将总计行附加到结果表中。

或者,您可能想尝试其中一个多对一邮件合并插件,来自:Graham Mayor,网址为http://www.gmayor.com/ManyToOne.htm;或 Doug Robbins 在https://onedrive.live.com/?cid=5AEDCB43615E886B&id=5AEDCB43615E886B!566

PS:虽然我知道 StackOverflow 更喜欢在此处发布而不是链接到答案的实质内容,但这种情况下的复杂性太大而无法以这种方式处理,除此之外,无法发布实际字段代码或包含它们的文档。


推荐阅读