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

时间:2012-04-02 06:54:39

标签: sql sql-server database ms-word

我想使用MS SQL数据库中的数据填充Word文档。

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

3 个答案:

答案 0 :(得分: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文档并保持平衡。
  3. 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的其他技术。
    4. 如果您需要从SQL Server(或任何其他数据库或数据平台)填写Word文档,我可以建议免费版Invantive Composition for filling Word documents from the database(请注意我已经参与了该产品)。它打开模板并从Word中合并它们,但更多的是针对非开发人员;只需指定模板和数据块(可能是嵌套的)并发布。开发人员只能在插件中添加一些C#。我认为当你有很多模板(超过50个)时它是一个很好的产品,因为它更容易扩展。

答案 1 :(得分:3)

您可以使用microsoft查询从SQL数据库中获取数据到您的文档,此视频可能很有用 https://vimeo.com/83983247

答案 2 :(得分:-4)

您也可以尝试使用MS-Excel,因为它比Word更好地绑定到XML。 使Excel生成'Word'样式输出也很容易。