2012-07-25 72 views
0

打開一個Excel工作表文件,我需要打開一個現有工作表,並使用OPENXML工具,修改它,但我似乎並不具備開盤下跌C#從的FileStream

// Append a new worksheet and associate it with the workbook. 
    XmlDocument doc = new XmlDocument(); 
    doc.Load(new FileStream(sheetfilename + ".xls", FileMode.Open)); 
    Sheet sheet; 
    //? 

問題與上面的是如何獲取XML並將其作爲工作表打開。

下面是另一種嘗試我早些時候用一個FileStream做類似的事情,但我得到了錯誤

Cannot convert type System.IO.FileStream to Document.OpenXML.SpreadSheet.Sheet 

Sheet sheet = (Sheet)new FileStream(sheetfilename + ".xls",FileMode.Open); 

我能請得到一些幫助,這好嗎?

+1

XLS不是OpenXML格式,需要被XLSX (2007年以上) – 2012-07-25 16:18:08

+0

哦!但是,如何將其中一個轉換爲當前格式?是否有辦法在代碼中這樣做,因爲我可以在Excel 2010中打開.xls文件。 – Kobojunkie 2012-07-25 16:32:52

+0

我建議您使用ADO.NET打開,這很容易,您可以打開xsl和xslx ...,我還沒有使用過OpenXML,所以我不知道你是否可以創建一個新文檔,如果可以的話,所以用舊版本打開舊版本,用openxml保存新版本 – 2012-07-25 16:41:15

回答

0

如果它的Excel版本,您可以使用NPOI舊的,非OpenXML的版本,它可以從這裏下載:

http://npoi.codeplex.com/

HSSFWorkbook workbook; 

using (FileStream fs = new FileStream(sheetfilename + ".xls", FileMode.Open, FileAccess.Read)) 
{ 
    workbook = new HSSFWorkbook(fs); 

    var sheet = workbook.GetSheet("Sheet1"); 

    ...do something.. 
} 
+1

當我嘗試上面的代碼時,我得到一個異常---無效的頭標籤;讀取0x0010000000080809,預計爲0xE11AB1A1E011CFD0 – Kobojunkie 2012-07-25 20:59:58