我想在 Web 应用程序中从服务器端 C#使用 Excel 的XML Map功能。XML 映射使您能够将 XML 架构与工作簿相关联,并指定哪些单元格映射到架构的哪些部分。从那里您可以导入 XML 文件以更新单元格值,并导出包含最新值的 XML(即,如果它们已被手动更改)。您可以在 Excel 的“开发人员”选项卡上手动执行此操作。
我们已经获得了 Aspose Cells 的许可证,但是(尽管最近在这方面做了一些工作)它似乎并不完全支持 XML 映射。有没有人在这方面取得任何成功?
我已经使用 Excel 互操作创建了一个测试,它可以工作(即可以以编程方式设置 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 进程。
是否可以使用 Microsoft 的Open XML SDK通过 XML Map 导入或导出 XML?我找到了Map 类,但我认为它只代表已经存在的地图的元数据。SDK 是否包含这种转换逻辑,还是仅将工作表的内容表示为类?