它一直是真正令人沮丧的经验,我试图做邮件合并(如果我可以调用我的要求)。我有一个word模板文档,包含占位符,如{{JointHolder}} {{JointHolderPAN}},{{Holding}},{{Nominee}},₹ {{UndrawnCapital| number:“N 0”}} Excel文件包含名为“Mappings”的工作表,该工作表将这些占位符Map到标题名称。
此占位符格式特定于我的许可工具。现在,我把我的尝试转向Python来保持这些占位符的完整性。VBA是否是我的需求的更好选择?
我已经达到了占位符被Excel文件中的值替换的地步。但占位符的实际格式并不保留。例如,粗体、字体类型、字体大小、上标、左右居中对齐。这些格式对我的要求至关重要。
主要的问题是我需要生成一个表的基础上的关键字“REPEAT”,这是在需要重复的行的第一个单元格。这样不行
预期表输出-
x1c 0d1x的数据
对于最小可重现性示例-Link to the sample word template, excel file and python project .py file
你的指导非常感谢。
编辑:我以前用过这个工具-https://www.pdfmachine.com/pdfmachine-merge/。现在我想完全摆脱这个工具,因此尝试Python。
编辑:我现在已经切换到VBA作为一个实验。VBA宏文件位于共享文件夹中。链接上面提供。
表格生成要求-
我有表在word模板和大部分占位符内的表。这些也可以是嵌套表。
- 如果在TableDisplayX列中找到“y”,则需要重复某些行
- 这样的行的第一个单元格强制性地包含单词“REPEAT”和“TableDisplayX”,其中X可以是任何整数,如1、2、3、4、5、6等。
- TableDisplayX是MailMerge工作表中的一个标头,如果特定行需要出现在为PATRTICULAR INVESTOR生成的表中,则它包含'y'值
- 同一行中的其他单元格包含1个或多个占位符。
- 生成的表中的值将从具有这些占位符表示的标头的列中提取
- 请注意,此生成表的每一行都包含来自MailMerge工作表中对应于该投资者的不同连续行的数据。
为了解决这些生成的表的复杂性,我建议-
- 当前代码应停止替换第一个单元格包含“REPEAT”字的行中的占位符
- 在占位符的正常替换之后(目前由程序处理),代码应该开始查找带有“REPEAT”字的表行
- 分别处理每个“REPEAT”行
- 找到对应于“TableDisplayX”的头,其中X是整数,例如TableDisplay 1是我的MailMerge工作表中的头
- 为那个投资者找出这个领域的Y的数目。这是要插入的数据行数
- 在不同单元格中查找同一行中的所有其他标题
- 例如,如果“y”的数量是5,则重复行必须是5。这些重复行必须正好在“REPEAT”行的下面;包括这一排所以新插入的行必须是4。
- 从所有标题中获取特定投资者的数据,并将其放置在这些表行中。
- 对其他“REPEAT”行重复上述步骤
1条答案
按热度按时间c2e8gylq1#
先试试我的代码。到目前为止,你是否满意?
字符串
你的代码和示例仍然有很多问题和不清楚的地方。你只能判断这是否是你想要的。我只是尽量配合你写的代码来实现它。
您的代码和示例似乎仍然存在一些问题和不明确的方面。这取决于您来确定这是否正是您正在寻找的。我的目标是与您编写的代码一起工作,尽我所能实现预期的结果。祝你好运!如果我有时间,我会尝试看看如何在Python中实现它。