C# 如何以编程方式将XML数据导入Excel文件?
以下代码可以帮助我从Excel导出XML数据:C# 如何以编程方式将XML数据导入Excel文件?,c#,.net,xml,excel,C#,.net,Xml,Excel,以下代码可以帮助我从Excel导出XML数据: Excel.Application application = new Excel.Application(); application.Workbooks.Open(excelFilepath, Missing.Value, Missing.Value,
Excel.Application application = new Excel.Application();
application.Workbooks.Open(excelFilepath,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value);
string data = null;
application.ActiveWorkbook.XmlMaps[1].XmlExport(out data);
现在,我正在寻找帮助我将XML数据导入Excel的代码,就像我通过单击“开发者”选项卡然后单击“导入XML”手动导入文件一样
有人能告诉我怎么做吗?使用相同的系统和MSDN网站。我花了很短的时间找到以下链接: Excel互操作中与XmlMap相关的方法。该特定链接指向XmlMap.Import函数,该函数接受url(文件路径)并导入xml数据 该页面上还有一个指向
ImportXml()
函数的链接,该函数可以接受xml字符串作为函数的直接输入,而不是使用URL
对于这两种情况,代码假定已经定义了XmlMap。我自己不知道如何通过接口以编程方式在Excel文档中定义XmlMap。我也遇到了同样的问题:XmlMaps[1]。Import()不起作用,它只是崩溃了,我不知道如何定义所需的XmlMaps。我找到了XmlMaps.Add(stringschema)方法,但我没有传递给它的xml模式。我手里只有一个xml文件 以下是我的情况:我有一个xml,我可以通过将xml文件拖到excel2007中手动将xml导入excel2007。然后它会弹出一个对话框,问我如何打开xml。有3个选项:作为xml、作为只读excel工作表、作为xml源。选择第一个选项,我的xml数据将自动导入excel 然后我尝试通过c#做同样的事情,但我发现的每一种方法都没有用 我坚持了三个小时 非常幸运的是,我终于找到了解决方案:您不需要使用XmlMaps,只需使用OpenXml()即可 下面是将合法xml导入excel的c#方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop;
using System.IO;
namespace SaveXmlAsExcel
{
class Program
{
static void Main(string[] args)
{
string xml = args[0];
string xlsx = args[1];
if (false == File.Exists(xml))
{
Console.WriteLine("{0} file not exist", xlsx);
return;
}
Microsoft.Office.Interop.Excel.Application xApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkBook = xApp.Workbooks.OpenXML(xml, Type.Missing, Microsoft.Office.Interop.Excel.XlXmlLoadOption.xlXmlLoadImportToList);
excelWorkBook.SaveAs(xlsx, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange);
excelWorkBook.Close();
xApp.Workbooks.Close();
}
}
}
这是我的xml:它必须有合法的格式,excel才能成功解析它
<AwardProps xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AwardPropRecord>
<g_AwardProps>
<entry>
<Id>0</Id>
<IsElite>0</IsElite>
<GoldCost>0</GoldCost>
<Exp>0</Exp>
</entry>
<entry>
<Id>255</Id>
<IsElite>255</IsElite>
<GoldCost>255</GoldCost>
<Exp>255</Exp>
</entry>
</g_AwardProps>
</AwardPropRecord>
</AwardProps>
0
0
0
0
255
255
255
255