我想使用 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 的选项:
- 它可以保留模板文件中的XmlMaps,并用它重新保存文件。
- 它支持从外部源导入 XML 映射。
- 它可以删除或检查 XML 映射。
目前暂不支持以下内容:
- 它不能将 XML 映射添加到 Excel 文件。
- 它不会导出 XML Maps 来保存外部文件(我们将在 2013 年第二季度尝试支持导出 xml Maps)
我叫 Nayyer,是 Aspose 的开发人员布道师。
关于c# - 往返 XML -> Excel -> XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937992/