【问题标题】:C# Load XML into Excel WorksheetC# 将 XML 加载到 Excel 工作表中
【发布时间】:2014-05-27 04:51:31
【问题描述】:

我有一个 XML 字符串,我想用 C# 将其直接加载到电子表格中。我找到了一些例子,但还没有完全填补我的知识空白。

Range r = Globals.ThisAddIn.Application.Worksheets["Sheet1"].Range["A1", Missing.Value];
Workbook w = Globals.ThisAddIn.Application.ActiveWorkbook;
w.XmlImportXml(xmlString, out map1, true, r);

“map1”变量似乎是 XML 模式的映射。我该怎么做呢?我必须指定一个 .xsd 文件还是可以通过编程方式创建它?处理此问题的首选方法是什么?

我的 XML 布局类似于:

<root>
   <parent>
      <childOne>5</childOne>
      <childTwo>8</childTwo>
   </parent>
   <parent>
      <childOne>10</childOne>
      <childTwo>15</childTwo>
   </parent>
</root>

【问题讨论】:

    标签: c# xml excel


    【解决方案1】:

    您可以像这样将 XML 加载到数据表中:

    DataTable table = new DataTable();
    table.ReadXml(xmlFilePath); // new StringReader(xmlContent)
    
    Excel.XmlMap map = w.XmlMaps.Add(table.GetXmlSchema(), "WhatEver");
    w.XmlImportXml(table.GetXml(), out map, true, r); 
    

    我不知道您从哪里获得 xml 内容。如果您已经将其作为字符串获取,请使用接受文本阅读器的 ReadXML 重载。

    同时检查这些链接 Functionexample of XmlImportXml, DataTable from Xml

    【讨论】:

    • 这是 System.Data.DataTable 吗?该类似乎没有 GetXmlSchema() 方法
    • 检查我提供的第二个链接
    • 我认为即使有那个例子我也有同样的问题。我需要能够生成用于传递给 XmlMaps.Add() 的 XML 模式。我为此发布了一个单独的问题:stackoverflow.com/questions/23898861/…
    猜你喜欢
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2023-03-02
    • 2020-08-27
    • 2014-10-04
    相关资源
    最近更新 更多