使用内容控件生成Word文档

时间:2013-10-04 18:19:11

标签: c# ms-word

我有一个单词文档模板,只在几个字段中发生变化。

我记得在使用google-fu时发现你可以将xml绑定到内容控件并通过该方法动态生成word文档。

不幸的是,自从我重新审视这个特殊问题以来已经有一段时间了,我记得这个问题的一切都是笨拙且难以管理。

有没有更优雅的开源解决方案?或者更好的方式去做?

1 个答案:

答案 0 :(得分:0)

我认为将内容控制XML数据绑定描述为支持Word文档生成/自动化的一系列技术中的最新内容是公平的。

内容控制数据绑定是在Word 2007中引入的,所以现在不是全新的。当您执行文档自动化时,通常还需要支持:

  • 有条件包含/排除内容
  • 重复数据(例如表格行,列表项目)

有两种方法可以使用内容控件执行上述操作,Microsoft最近发布了对重复数据的专用支持。

内容控件数据绑定比旧方法更不易碎,但如果你不喜欢XML和XPath,你可能不会称之为优雅: - )

传统方法“烘焙”到Word包括:

  • 字段:MERGEFIELD,表单字段或自定义字段
  • 使用书签

这些问题是作者用户很容易错误地删除它们。另一个问题是开发人员在XML级别上工作并不容易(尽管可以通过VBA或VSTO使用)。

另一种方法是在文档表面上包含魔术文本字符串,并且有各种工具可以执行此操作。这有一个初步的吸引力,但问题是文档表面上看起来像一个连续的文本字符串可以在XML级别拆分,因为:

  • 拼写/语法修正
  • rsid(在不同时间或由不同的人进行的编辑)
  • 格式化(例如字体大小,外观变化)

简而言之,是的,有其他选择。选择你的毒药。