C# 用C语言生成Word文档#

C# 用C语言生成Word文档#,c#,.net,reporting-services,ms-word,openxml,C#,.net,Reporting Services,Ms Word,Openxml,给定一个邮寄地址列表,我需要打开一个现有的Word文档,该文档的格式为打印标签,然后将每个地址插入表的不同单元格中。当前解决方案打开Word应用程序并移动光标以插入文本。然而,在阅读了有关安全性问题以及从web应用程序打开较新版本的Word相关问题后,我决定需要使用另一种方法 我已经研究过如何使用OfficeOpenXML,但还没有找到任何好的资源提供关于如何使用它的具体信息。另外,有人建议我使用SQL reporting services,但搜索有关如何使用这些服务的信息对我毫无帮助 你认为哪

给定一个邮寄地址列表,我需要打开一个现有的Word文档,该文档的格式为打印标签,然后将每个地址插入表的不同单元格中。当前解决方案打开Word应用程序并移动光标以插入文本。然而,在阅读了有关安全性问题以及从web应用程序打开较新版本的Word相关问题后,我决定需要使用另一种方法

我已经研究过如何使用OfficeOpenXML,但还没有找到任何好的资源提供关于如何使用它的具体信息。另外,有人建议我使用SQL reporting services,但搜索有关如何使用这些服务的信息对我毫无帮助

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


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

我使用单词plugin from来进行邮件合并()。

Vanstee

如果你真的想在代码中实现这一点,请查看我刚刚在谷歌上找到的这篇文章


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


使用这样的产品的优点是,您可以继续管理数据,并且生成文档所需的技能集处于各种开发人员可以支持其使用的级别

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

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


这是值得一试的。

如果你正在使用reporting services,难道你不能将word文档中的信息移动到数据库表中,然后从数据库表中读取,将word从公式中去掉吗?

谢谢所有的答案,但我真的不想为插件付费,使用word自动化是不可能的。所以我一直在寻找,最终,通过一些尝试和错误,找到了一些答案

在彻底搜索了微软的网站后,我在OfficeOpenXMLSDK上找到了一些更新的文章。我下载了新工具,并开始逐一检查

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

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


这要求您打开Word应用程序,但目前还不是一个选项。@Vanstee,您可以将代码更改为从控制台应用程序工作,并且通过将Word的可见性设置为false永远不会显示Word。你想举个例子吗?展示单词并不是真正的问题。要从web应用程序访问Word的较新版本,必须授予它一些高级权限。我们的服务器管理员拒绝这样做,在阅读了相关内容后,我没有责怪他。无论如何,谢谢。@Vanstee,我收回它,我没有看到关于web应用程序的部分,也许更新你问题的标题或加粗该部分。您可以执行邮件合并,然后检查文档。看看这个视频:channel9.msdn.com/posts/LarryLarsen/…,这个家伙提到了一个查看文档的工具。完成后,您可以看到word生成的XML,并尝试复制它。在这种情况下,第三方库可能是更好的选择。感谢您的快速响应。然而,我一直在寻找免费的解决方案,所以我不必担心许可问题。Aspose是按开发者或站点许可的,一种类型的许可允许分发到任意数量的物理站点(开发者或站点OEM许可)。我们应用程序的这一方面并不重要,不足以证明为广泛的插件付费。你知道有什么免费的替代方案吗?OpenXMLSDK2.0仍在CTP中,许可仅用于测试目的(直到Office 14面世),这实际上是一个绝妙的想法!