如何在 C# 中从模板创建 *.docx 文件

问题描述 投票:0回答:4

我有一个可用的 ASP.NET MVC Web 应用程序来管理项目和客户。现在我想为一些客户生成一个word文件。在此文件中应显示有关客户的一些数据。每个生成的文件都应该具有相同的数据和相同的设计。因此,我想创建一个包含字段的新 Word 模板,并希望以编程方式填充占位符。

我的问题是我找不到明确的方法来做到这一点。有谁知道好的学习资源吗?

c# .net ms-word openxml docx
4个回答
12
投票

尝试此页面:

构建 Office Open XML 文件

Open XML 文件 (docx) 是包含 XML 文件的 ZIP 包。对于您的情况,我将创建原始模板的副本,然后使用

System.IO.Packaging
API 打开文件并修改它。通过打开正确的 XML 文件并替换 XML 中的某些占位符,您应该能够实现您想要的结果。


5
投票

在尝试做同样的事情时,我发现了一些在 .Net 中创建/编辑 DOC 或 DOCX 的库


0
投票

从模板文件(.dot)生成新文档应该很容易,我认为这是您在打开的word应用程序文件中指定的参数,当您传递.dot文件的路径时,告诉word创建基于该文件的新 .doc,而不是编辑实际的模板文档。

对于表单字段和书签填充,网上有很多关于如何使用 C# 执行此操作的示例,请参见此处:

MS Word Office Automation - 填写文本表单字段和复选框表单字段以及邮件合并


0
投票

一个简单的解决方案是使用类似 DocXGenerator 的东西。它根据word文件模板和json数据生成word格式的报告。您可以根据需要自由设置模板格式。

示例: 模板文件:

enter image description here

带有一些json数据,例如:

{"StudentData": [
{
    "Name": "Ahmed",
    "Results": [
        {
            "CourseName": "Math",
            "Mark": 45
        },
        {
            "CourseName": "Physics",
            "Mark": 76
        }
    ]
},
{
    "Name": "John",
    "Results": [
        {
            "CourseName": "Math",
            "Mark": 71
        },
        {
            "CourseName": "Physics",
            "Mark": 87
        }
    ]
},
{
    "Name": "Kassem",
    "Results": [
        {
            "CourseName": "Math",
            "Mark": 67
        },
        {
            "CourseName": "Physics",
            "Mark": 91
        }
    ]
}]}

你得到:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.