使用C#生成Word文档

时间:2009-05-31 16:38:57

标签: c# .net reporting-services ms-word openxml

鉴于邮件地址列表,我需要打开一个现有的Word文档,该文档的格式为打印标签,然后将每个地址插入到表的不同单元格中。当前解决方案打开Word应用程序并移动光标以插入文本。但是,在阅读了与从Web应用程序打开较新版本的Word相关的安全问题和问题后,我已经决定需要使用其他方法。

我已经研究过使用Office Open XML,但是我没有找到任何好的资源来提供有关如何使用它的具体信息。另外,有人建议我使用SQL报告服务,但是搜索有关如何使用它们的信息,却无处可去。

您认为哪种方法最适合我的问题?

代码示例和指向优秀教程的链接非常有用。

6 个答案:

答案 0 :(得分:4)

感谢所有的答案,但我真的不想为插件付费而且使用Word自动化是不可能的。所以我一直在寻找并最终通过一些反复试验找到了答案。

在彻底搜索微软的网站后,我在Office Open XML SDK上发现了一些较新的文章。我下载了新工具,然后开始浏览每个工具。

然后我找到了Document Reflector,它创建了一个类来生成基于现有Word文档(.docx)的XML代码。使用我的标签模板文档和这个工具生成的代码,我通过并添加了一个循环,为每个地址附加表格单元格。事实证明它比使用Word自动化更简单,更快捷。

因此,如果您仍在使用Word自动化,请查看Office Open XML工具。他们从微软免费下载的内容非常广泛。

Office Open XML SDK 2.0 Download

答案 1 :(得分:2)

我使用Aspose.com中的Words插件进行邮件合并(programming guide)。

答案 2 :(得分:2)

您可以在dnrTV(www.dnrtv.com)上查看节目137和138。在这些视频中,Beth Massi展示了如何使用OpenXML进行一些编辑和邮件合并。她通过在VB中使用Open XML SDK和xml文字来实现这一点。它不需要第三方组件。此外,它不需要在计算机上安装MS Office。

这段视频激发了我作为C#开发(并且没有VB经验)在VB中的单独dll中进行一些XML操作。我从C#应用程序调用了这个dll。

值得一试。

答案 3 :(得分:1)

我们有tvanfosson提到过的产品Aspose。我们购买的版本与SQL Reporting Services配合使用,因此可以与调度程序一起使用以创建输出。它确实是一个很棒的产品,我们在最终文档中需要支持韩文字符的系统中使用它。它工作得很好,支持不到1千美元。还不错。

使用这样的产品的好处是,您可以继续管理您的数据,并且生成文档所需的技能组合处于各种开发人员可以支持其使用的水平。

答案 4 :(得分:0)

Vanstee,

如果您真的想在代码中执行此操作,请查看我刚在Google上找到的这篇文章

http://kellychronicles.spaces.live.com/blog/cns!A0D71E1614E8DBF8!1364.entry

答案 5 :(得分:0)

如果您正在使用报告服务,那么您只需将单词doc中的信息移动到数据库表中并从那里读取它,从中获取信息吗?