Word 2010邮件合并:输出文本没有尾随换行符

时间:2013-11-06 18:28:20

标签: mailmerge mergefield

我正在使用一个使用Word模板自动生成报告的程序。换句话说,我无法修改在模板读取之前预处理文本的代码。

也就是说,有些文本条目有一个尾随换行符,有些则没有。如果存在,我想删除尾随换行符。

实施例: {MERGEFIELD dbEntry}

dbEntry可能有一个尾随换行符。如果是,我想在使用模板代码在生成的文档中显示时将其删除。

这可能吗?如果没有,MS Word中是否有任何“黑客”可以做到如此“看起来”就像没有新行一样?

1 个答案:

答案 0 :(得分:0)

解决此问题的一些方法包括以下内容,但它取决于您可以对模板执行的操作(如果有的话)。需要注意的一点是,在Office应用程序和API中的各个位置可能会遇到255个字符的文本长度限制:

一个。在所有数据都是数字或日期的特殊情况下,您可以考虑在字段中应用数字/日期格式。实际上,这将删除尾随换行符。

湾如果您知道您的数据源支持SQL方言,其中的函数可以剥离换行符,您知道每个数据源中的所有字段名称,您可以考虑使用OpenDataSource进行连接并发出适当的SQL。但请注意,SQL语句中总共限制为511个字符 - 对于某些数据源,总共限制为255个字符。即使对于文本文件,这也许是可行的,因为您可以使用Jet / ACE文本IISAM,它允许您使用Jet SQL。这个主题有不同的变化。

℃。您可以使用Word对象模型中的MailMerge事件在合并进行时从数据源检索字段。通常,您所做的是剥离换行符,将结果插入到文档变量中,并使用DOCVARIABLE字段插入结果。但是VBA只会检索字段的前255个字符,所以如果你有更长的文本,你必须能够以其他方式打开数据源以及,得到正确的文本(s )从正确的记录,并处理和插入。

d。正常插入字段数据,添加自己独特的字段标记开头和结尾,输出到新文档,然后进行后处理。