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

9

我希望从我们的 MS SQL 数据库中提取数据并将其填充到 Word 文档中。

这是否可行,如果可以,该怎么做呢?

3个回答

5
我过去以各种方式完成了这项任务。它取决于用户是从Microsoft Word的外部还是内部发起操作。
从Microsoft Word的内部,您可以使用以下技术之一:
  1. 打开一个带有占位符的模板,并使用VBA或VSTO来迭代使用数据源的占位符,使用复制和粘贴。请注意,表格在此处也是不被允许的。这种方法类似于下面“外部”方法1的方法。缺点是相对较慢(复制和粘贴),而且Microsoft Word自动更正会在最不需要的时候启动。
  2. 打开一个带有占位符的模板,并使用VBA或VSTO来解析XML表示形式,然后替换这些内容。它更快,但更难编写。特别是因为XML表示形式可以包含占位符中的XML片段(例如'&amp;lt;&amp;lt;PUT_<xxx/>IT_HERE&amp;gt;&amp;gt;'和更复杂的情况)。此外,您需要确保保持有效的XML文档和良好平衡。
从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. Fat-client。将SQL数据放在某个地方。打开Word。读取数据并查看从Microsoft Word的内部进一步技术。
如果您需要从SQL Server(或任何其他数据库或数据平台)填写Word文档,我可以建议使用Invantive Composition的免费版本来填写Word文档(请注意,我曾参与该产品的开发)。它可以在Word中打开模板并合并它们,但更加针对非开发人员;只需指定模板和数据块(可能嵌套),然后发布即可。开发人员只能在插件中添加一些C#代码。当您有许多模板(超过50个)时,我认为这是一个很好的产品,因为它更容易扩展。

3

您可以使用Microsoft Query从SQL数据库中获取数据到您的文档中,这个视频可能会有所帮助。 https://vimeo.com/83983247


-4
你也可以尝试使用MS-Excel,因为它比Word更好地绑定了XML。而且很容易让Excel生成“Word”样式的输出。

3
这并不能完全回答这个问题。 - jorrebor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接