【问题标题】:Round-tripping XML -> Excel -> XML往返 XML -> Excel -> XML
【发布时间】:2012-12-26 15:16:28
【问题描述】:

我想在 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 进程。

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

【问题讨论】:

  • 您可以试试 EPPLUS,一个免费的 Excel 阅读器/编写器。我找不到它的特征图,但它很大......
  • @ChristianSauer 谢谢。看起来它是在 2011 年 5 月开发的 (epplus.codeplex.com/discussions/257364) 所以我跟进询问它是否还在。
  • 啊,请在此处添加结果,谢谢!

标签: c# excel openxml openxml-sdk aspose


【解决方案1】:

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

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

目前暂不支持以下:

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

我叫 Nayyer,是 Aspose 的开发人员传道者。

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 2013-02-06
    • 2019-03-11
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多