npoi讀寫excel導致excel檔案格式損壞
阿新 • • 發佈:2019-02-18
用微軟提供的
Microsoft.Office.Interop.Excel.dll可以很輕鬆的實現各種excel操作,但是前提是電腦必須安裝excel軟體。
因此,在不安裝excel軟體的情況下,實現對excel檔案的操作,只能另選它法。我用的是npoi開原始碼。
但是有個問題,用npoi開啟excel檔案再儲存,即使不進行寫操作,當雙擊excel檔案的時候出錯:檔案格式已被損壞。
找了很多資料都不能解決我的問題。
解決這個問題有兩點:
1.版本要對。注意npoi對excel2003和excel2007以上的檔案操作的類和函式不同(2003是HSSFWorkbook,2007以上是XSSFWorkbook);
2.npoi讀取和儲存excel檔案的方式要對(基本讀取操作都可以,儲存的時候要考究一下)
讀取示例如下:
private IWorkbook wk;
using (FileStream fs = new FileStream(m_strNPOIFilePath, FileMode.Open, FileAccess.Read))
{
wk = new XSSFWorkbook(fs);//獲取所有sheet頁:wk.NumberOfSheets
}
儲存操作如下:(至少,我的只能這樣儲存,另存為)
FileStream sw = File.Create(m_strFileName);
wk.Write(sw);
sw.Close();