2012-04-02 188 views

回答

5

我在过去做过很多种方法。这取决于用户是从Microsoft Word的OUTSIDE还是从INSIDE Microsoft Word启动操作。

INSIDE Microsoft Word中,你可以使用以下技术之一:模板

  1. 公开赛占位符和使用VBA或VSTO使用使用复制粘贴&数据源对它们进行迭代。请注意,桌子也是犯罪。这种方法类似于下面的“OUTSIDE”的方法1。缺点是它相对较慢(复制粘贴&)并且Microsoft Word自动更正喜欢在最不需要的时候启动。
  2. 使用占位符打开模板并使用VBA或VSTO解析XML表示,然后替换它们。这是更快,但更难写。特别是因为XML表示可以在占位符内包含XML片段(例如'&amp;lt;&amp;lt;PUT_<xxx/>IT_HERE&amp;gt;&amp;gt;'和更复杂的情况)。另外,您需要确保您保留有效的XML文档并且保持良好的平衡。

OUTSIDE Microsoft Word中(如网络接口),可以使用以下方法之一:

  1. 商店模板,使用RTF地方(这是更容易比Word自带的结构处理)。将'&lt;&lt;PLACEHOLDER-FOR-NAME&gt;&gt;'或类似的容易识别的文本放在您想要替换的地方。当用户请求Word文档时,获取RTF,获取数据,替换占位符,服务器RTF给用户。 RTF有一些限制,但有一些优点。优点是:易于创建新模板,并且可以与Microsoft Wordpad和其他Office软件包配合使用。缺点是表格是一个真正的混乱过程,并不是所有的Microsoft Word结构都是可能的。重复表中的行甚至不推荐。高音量可能是一个问题。
  2. 使用恰好也输出docx,doc或RTF文档的报告包。写报告。一般来说非常适合高音量。如果您希望最终用户输入大量附加文本,则不太合适,因为报告包通常基于页面而不是基于流动文本工作,有时会插入显式或隐式分页符。但是如果你只需要最终用户输入一两句话,那就足够了。
  3. 胖客户端。把SQL数据放在某个地方。打开Word。阅读数据并查看来自INSIDE Microsoft Word的更多技术。

如果您需要填写从SQL Server(或任何其他数据库或数据平台)一个Word文档,我可以建议的Invantive Composition for filling Word documents from the database免费版(请注意,我一直在参与该产品)。它打开模板并在Word中将它们合并,但更多地针对非开发人员;只需指定模板和数据块(可能嵌套)并发布即可。开发人员只能在插件中添加一些C#。我认为这是一个很好的产品,当你有很多模板(超过50),因为它更容易扩展。

-4

您也可以尝试使用MS-Excel,因为它比Word更好地绑定XML。 使Excel产生'Word'风格的输出也很容易。

+3

这不是几乎回答了这个问题。 – jorrebor 2014-02-12 15:31:58