在 C# 中填充 Word 2007 模板的最佳方法是什么?

发布于 2024-07-09 02:40:43 字数 224 浏览 12 评论 0 原文

我需要从代码填充 Word 2007 文档,包括重复的表格部分 - 目前我对 docx 的 document.xml 部分使用 XML 转换,但这设置起来非常耗时(每次编辑模板文档时) ,您必须重新创建transform.xsl 文件,对于复杂的文档来说,这可能需要一天的时间)。

有没有更好的方法,最好是在此过程中不需要运行 Word 2007 的方法?

问候 理查德

I have a need to populate a Word 2007 document from code, including repeating table sections - currently I use an XML transform on the document.xml portion of the docx, but this is extremely time consuming to setup (each time you edit the template document, you have to recreate the transform.xsl file, which can take up to a day to do for complex documents).

Is there any better way, preferably one that doesn't require you to run Word 2007 during the process?

Regards
Richard

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

空袭的梦i 2024-07-16 02:40:43

我尝试自己为此目的编写一些代码,但放弃了。 现在我使用第 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.

伴随着你 2024-07-16 02:40:43

由于 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.

草莓酥 2024-07-16 02:40:43

使用调用 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

岁月苍老的讽刺 2024-07-16 02:40:43

您考虑过使用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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文