2011-06-10 102 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

相關問題