2011-06-10 104 views
1

使用Excel插件OfficeExcel2003XMLToolsAddin我已经能够为Excel工作表定义XML映射(此插件将范围转换为XML列表),现在我可以手动使用另存为将Excel文件保存为XML文件。使用xmlMaps以编程方式将Excel文件导出为XML

Excel中正确地产生类似

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <Row> 
     <brand>Brand1</brand> 
     <Italian>Description1</Italian> 
     <English>Description2</English> 
    </Row> 
    <Row> 
     <brand>Brand2</brand> 
     <Italian>Description3</Italian> 
     <English>Description4</English> 
    </Row> 
</Root> 

现在,我想编程做同样的(希望使用C#,.NET 4.0)。

我尝试使用NPOI和Microsoft Office Excel的互操作,使用此代码

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 
xlApp.Workbooks.OpenXML(@"excelFile.xls"); 
xlApp.Workbooks[1].SaveAs(xmlFile, XlFileFormat.SOME_FORMAT); 

XlFileFormat reference page列出的所有枚举,没有成功尝试。

有什么建议吗?由于

回答

1

这应该工作

Application app = new Application(); 
app.Workbooks.Open(@"C:\Sample.xlsx", 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing); 
string data = string.Empty; 
app.ActiveWorkbook.XmlMaps[1].ExportXml(out data); 
app.Workbooks.Close(); 

数据应该包含XML

+0

是啊!它完美的作品。正是我在找什么。大 – 2011-07-04 07:28:28

+0

把app.Workbooks.Close()放在try/finally中,并且它是完美的。 – craigtadlock 2012-11-25 20:20:49

相关问题