在 C# 中填充 Word 2007 模板的最佳方法是什么?
我需要从代码填充 Word 2007 文档,包括重复的表格部分 - 目前我对 docx 的 document.xml 部分使用 XML 转换,但这设置起来非常耗时(每次编辑模板文档时) ,您必须重新创建transform.xsl 文件,对于复杂的文档来说,这可能需要一天的时间)。
有没有更好的方法,最好是在此过程中不需要运行 Word 2007 的方法?
问候 理查德
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我尝试自己为此目的编写一些代码,但放弃了。 现在我使用第 3 方产品: Aspose Words 我对该组件非常满意。
它不需要机器上安装 Microsoft Word。
“Aspose.Words 使 .NET 和 Java 应用程序能够在不使用 Microsoft Word® 的情况下读取、修改和写入 Word® 文档。”
“Aspose.Words 支持多种功能,包括文档创建、内容和格式操作、强大的邮件合并功能、对 DOC、OOXML、RTF、WordprocessingML、HTML、OpenDocument 和 PDF 格式的全面支持。Aspose.Words 确实是市场上最实惠、速度最快且功能丰富的 Word 组件。”
免责声明:我不隶属于该公司。
I tried myself to write some code for that purpose, but gave up. Now I use a 3rd party product: Aspose Words and am quite happy with that component.
It doesn't need Microsoft Word on the machine.
"Aspose.Words enables .NET and Java applications to read, modify and write Word® documents without utilizing Microsoft Word®."
"Aspose.Words supports a wide array of features including document creation, content and formatting manipulation, powerful mail merge abilities, comprehensive support of DOC, OOXML, RTF, WordprocessingML, HTML, OpenDocument and PDF formats. Aspose.Words is truly the most affordable, fastest and feature rich Word component on the market."
DISCLAIMER: I am not affiliated with that company.
由于 DOCX 文件只是一个包含图像和 XML 文件的文件夹结构的 ZIP 文件,因此您应该能够使用我们最喜欢的 XML 操作 API 来操作这些 XML 文件。 该格式的规范称为 WordprocessingML,是 Office Open XML 标准的一部分。
我想我会提到它,以防 splattne 建议的第 3 方工具不是一个选项。
Since a DOCX file is simply a ZIP file containing a folder structure with images and XML files, you should be able to manipulate those XML files using our favorite XML manipulation API. The specification of the format is known as WordprocessingML, part of the Office Open XML standard.
I thought I'd mention it in case the 3rd party tool suggested by splattne is not an option.
您是否考虑过使用 Microsoft 的 Open XML SDK? 唯一的依赖是 .NET 3.5。
文档:http://msdn.microsoft.com/en-us/library/bb448854% 28office.14%29.aspx
下载:http://www.microsoft.com/downloads/details.aspx?familyid=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en
Have you considered using the Open XML SDK from Microsoft? The only dependency is on .NET 3.5.
Documentation: http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx
Download: http://www.microsoft.com/downloads/details.aspx?familyid=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en
使用调用 docx lib。 它支持表数据(http://invoke.co.nz/products/help/docx_tables .aspx)。 更多信息请访问 http://invoke.co.nz/products/docx.aspx
Use invoke docx lib. it supports table data (http://invoke.co.nz/products/help/docx_tables.aspx). More info at http://invoke.co.nz/products/docx.aspx
您考虑过使用VB吗? 您可以创建一个单独的程序集来填充您的文档。
我知道您正在寻找 C# 解决方案,但 XML 文字支持是 XML 文字支持可以帮助您填充文档的一个领域。 在 Word 中创建一个文档作为服务器模板,解压缩 docx,将要更改的相关 XML 部分粘贴到 VB 代码中,然后添加代码来填充您要更改的部分。 从您的描述中很难判断这是否满足您的要求,但我建议您进行研究。
Have you considered using VB? You could create a separate assembly to populate your document.
I know you are looking for a C# solution, but the XML literal support is one area where XML literal support could help you populate the document. Create a document in Word to server as a template, unzip the docx, paste the relevant XML section you want to change into you VB code, and add code to fill in the parts you wish to change. It's difficult to say from your description if this would meet your requirements but I would suggest looking into it.