我有一个令人羡慕的任务,即编写一个位于 word 2007/10/13 之上的模板系统,它允许人们从后端数据存储中将简单的逻辑注入到文档中(待定,但这可能是某种形式的导出 XML 文档) 以下列形式:
- 直接绑定到数据元素(例如段落/标题/部分标题)
- 多次重复数据元素(例如表体或列表)
- 提供内联逻辑(例如检查业务规则结果值的 if 块)。
我们不想提供一个程序来逐案执行此操作,而是希望将其交到客户手中,这意味着他们需要使用 word 提供的创作工具。他们可以使用我们正在编写的加载项来标记文档,然后将此文档作为模板上传到我们的解决方案,并在其中执行上述指令并从那里执行它们。
不幸的是,我查看了以下想法,所有这些想法都有很大的漏洞。
- XML 架构。不幸的是,这在 Word 2007+ 中消失了。
- 将 XML 命名空间添加到 content.xml 文件并在使用该命名空间中的属性时编写指令(然后很容易进行后期处理!)。不幸的是,无法弄清楚如何通过 VSTO 编辑这些或将它们显示在文档上。
- 添加包含模板指令的内联内容(不喜欢这样,因为它破坏了模板和文档内容之间的语义分离)。
- 使用内容控件(这很好,但只有 2013+ 具有重复功能,没有丑陋的黑客)
- 其他的?
是否有人对解决此问题的最佳方法或上述问题的解决方法有任何想法?
我使用 VSTO + VS2012 作为工具链,需要针对 2007、2010 和 2013 版本的 Word。