如何从Word 2010中的SQL数据库中检索数据?

jor*_*bor 9 sql database sql-server ms-word

我想用我们的MS SQL数据库中的数据填充Word文档.

这是可能的,如果是的话怎么样?

Gui*_*ers 5

我过去曾以各种方式做过.这取决于用户是从Microsoft Word的OUTSIDE还是从INSIDE Microsoft Word启动操作.

INSIDE Microsoft Word,您可以使用以下技术之一:

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

OUTSIDE Microsoft Word(例如Web界面),您可以使用以下技术之一:

  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的免费版本来填充数据库中的Word文档(请注意我已经参与了该产品) .它打开模板并从Word中合并它们,但更多的是针对非开发人员; 只需指定模板和数据块(可能是嵌套的)并发布.开发人员只能在插件中添加一些C#.我认为当你有很多模板(超过50个)时它是一个很好的产品,因为它更容易扩展.