往返XML - > Excel - > XML

时间:2012-12-18 17:05:40

标签: c# excel openxml openxml-sdk aspose

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

我们已经拥有Aspose Cells的许可证,但是(尽管最近在该领域有一些工作)它似乎并不完全支持XML地图。有人有这个成功吗?

我使用Excel Interop创建了一个测试,它可以工作(即可以编程方式设置XML Map并使用它来导入和导出值)。归结为:

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 class,但我认为它只代表已经存在的地图的元数据。 SDK是否包含这种转换逻辑,还是仅将工作表的内容表示为类?

1 个答案:

答案 0 :(得分:4)

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

  1. 它可以在模板文件中保留XmlMaps并使用它重新保存文件。
  2. 它支持从外部源导入XML映射。
  3. 它可以删除或检查XML映射。
  4. 目前它不支持以下内容:

    1. 无法将XML地图添加到Excel文件中。
    2. 它不会导出XML地图以保存外部文件(我们将尝试在2013年第二季度支持导出xml地图)
    3. 我的名字是Nayyer,我是Aspose的开发人员传播者。