0

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

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

示例:{ MERGEFIELD dbEntry }

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

这可能吗?如果没有,我可以在 MS Word 中做任何“黑客”来使它“看起来”像没有换行符吗?

4

1 回答 1

0

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

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

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

C。随着合并的进行,您可以使用 Word 对象模型中的 MailMerge 事件从数据源中检索字段。通常,您要做的就是去除换行符,将结果插入到文档变量中,然后使用 DOCVARIABLE 字段插入结果。但是 VBA 只会检索字段的前 255 个字符,因此如果您有较长的文本,您还必须能够以其他方式打开数据源,从正确的记录获取正确的文本,并且处理并插入。

d。像往常一样插入字段数据,添加您自己独特的字段开始和结束标记,输出到新文档,并进行后期处理。

于 2013-11-12T10:22:05.870 回答