1. 程式人生 > >npoi讀寫excel導致excel檔案格式損壞

npoi讀寫excel導致excel檔案格式損壞

用微軟提供的

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();