gpt4 book ai didi

c# - 在 Open XML 2.0 中打开一个 microsoft .xml 文件并添加变量数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:20 26 4
gpt4 key购买 nike

我们在Visual Studio 2005中继承了一大堆用C# on .NET 2.0编写的代码,后台数据库是MS SQL server 2000,我们在Visual Studio 2010中将代码迁移到C# on .NET 4.0,可以编译和编译 build 。问题是旧代码使用 Microsoft.Interop.Office.Word 库来允许我们使用邮件合并和宏嵌入模板生成服务器端报告。我们现在了解到 Visual Studio 2010 不支持服务器端 VBA 或 C# MS Word 应用程序工作。所以我们下载了 Open XML 2.0。该文档令人沮丧。我们在 web 上找到的无数帖子都谈到从头开始创建文档,很少涉及邮件合并或在 .dotm 文件中运行启用的宏等,而且大多数帖子都涉及 Open XML 1.0。

我能否在 MS Word 中将 .dotx 文件转换为 .xml 文件,然后仅使用 C# 和 Open XML API 加载该 .xml 文件并嵌入从数据库中提取的可变数据?每次运行报告时,在代码中动态构建现有的 .xml 文件(即 30 页报告)似乎绝对是疯狂的。我错过了什么吗?

如果有人成功地做到了这一点,那么使用 C# 代码的示例将非常有帮助。谢谢,艾米丽

最佳答案

您可以尝试一种非常非常简单的查找/替换方法。

  1. 将模板创建为 .docx 文件并将其保存在服务器上
  2. 将所有邮件合并字段更改为易于查找和解析的占位符,这些占位符通常不会出现在文档中并且不需要 XML 编码。例如:{{FirstName}}
  3. 为您要生成的每个文档创建一个新的空白 .docx (zip) 文件
  4. 从模板 .docx 文件中读取每个文件
  5. 在您阅读源文件时,根据需要搜索并替换您的标记
  6. 发送文件给客户

我自己没有使用过 WordML,所以我不知道是否存在会阻止上述工作的陷阱,但根据我对 Open XML 的理解和 SpreadsheetML 的使用,它应该可以工作。

使用 OpenXML 比使用 Office Interop 更复杂。 Office Interop API 更接近于 Office UI,因此熟悉且更易于使用。 Open XML API 是核心 XML 的一个非常轻量级的包装器,几乎与直接处理 XML 完全相同。如果没有完全相同的自动熟悉度,它会更复杂。

但是,OpenXML 比办公室互操作。对于服务器使用,Office 互操作从未是安全的。将此视为摆脱旧的定时炸弹的好时机。

关于c# - 在 Open XML 2.0 中打开一个 microsoft .xml 文件并添加变量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com