c# - 往返 XML -> Excel -> XML

标签 c# excel openxml openxml-sdk aspose

我想使用 Excel 的 XML Map Web 应用程序中来自服务器端 C# 的功能。 XML 映射使您能够将 XML 架构与工作簿相关联,并指定哪些单元格映射到架构的哪些部分。您可以从那里导入 XML 文件以更新单元格值,并导出包含最新值的 XML(即,如果它们已被手动更改)。您可以在 Excel 的“开发人员”选项卡上手动执行此操作。

我们已经有了 Aspose Cells 的许可,但是(尽管最近在这方面做了一些工作)它似乎并不完全支持 XML 映射。有人成功过吗?

我已经使用 Excel Interop 创建了一个测试,该测试有效(即可以以编程方式设置 XML 映射并使用它来导入和导出值)。归结为:

XmlMap map = workbook.XmlMaps.Add(xmlSchema, Missing.Value);

// map cell C3 to the question text
var worksheet = (Worksheet)workbook.Worksheets[1];
Range cell = (Range)worksheet.Cells[3, 3];
cell.XPath.Clear(); // just in case
cell.XPath.SetValue(map, "/Root/Question/Text", Missing.Value, false);

// import the XML to populate the mapped cells
map.ImportXml(xmlData, true);

但是,这并不适合在服务器上使用,因为它依赖于在后台运行 Excel 进程。

是否可以使用微软的 Open XML SDK通过 XML 映射导入或导出 XML?我找到了 Map class ,但我认为这只是代表已经存在的 map 的元数据。 SDK 是否包含此类转换逻辑,还是仅将工作表的内容表示为类?

最佳答案

为了进一步向您提供有关 XMLMaps 功能的详细信息,目前 Aspose.Cells 仅支持以下有关 XML Maps 的选项:

  1. 它可以保留模板文件中的XmlMaps,并用它重新保存文件。
  2. 它支持从外部源导入 XML 映射。
  3. 它可以删除或检查 XML 映射。

目前暂不支持以下内容:

  1. 它不能将 XML 映射添加到 Excel 文件。
  2. 它不会导出 XML Maps 来保存外部文件(我们将在 2013 年第二季度尝试支持导出 xml Maps)

我叫 Nayyer,是 Aspose 的开发人员布道师。

关于c# - 往返 XML -> Excel -> XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937992/

相关文章:

c# - 有没有办法在 WPF TextBlock 中给一个字符加下划线?

R:将多元回归输出的系数输出到 .csv 或 .xls

regex - 如果字符串中的任何内容与模式检查的内容不同,则正则表达式返回 false

Excel:iferror 应该返回什么以避免#value!错误

xml - 使用 MemoryStream 创建 Open XML 电子表格时出现 Excel 和 "unreadable content"

excel - Openxml 单元格返回 InnerText 而不是实际值

c# - 基本 Xamarin.iOS 屏幕操作

c# - 使用 Moq 模拟方法的某些部分

c# - 在 catch 子句中禁止等待。寻找解决办法

c# - 将 HTML 转换为样式完整的 Word Docx