NPOI是Apache License 2.0的開放原始碼函式庫,提供.NET程式開發人員在無安裝Microsoft Office的環境下,讀取和操作Office 97-2007文件。
問題說明:
當我們使用CreateSheet方法去創建一組新的工作表,如下面的程式碼:
HSSFWorkbook Workbook;
Workbook = new HSSFWorkbook();
Workbook.CreateSheet("Sheet1");
ISheet sheet = Workbook.GetSheetAt(0);
如果使用了下面的方法讀取工作表的row或cell的資料時,
會出現嚴重的Exception而無法知道原因!
例如:
IRow row;
row = sheet.GetRow(0);
if (row == null)
row = sheet.CreateRow(0);
解決方法:
當工作表使用CreateSheet("Sheet1")方法產生時,不能使用sheet.GetRow(0)的方法,必須直接使用CreateRow(0)的方法;對於Cell的操作也是一樣,否則伺服器會完全當機!
正確的方法如下:
IRow row = sheet.CreateRow(0);
ICell cell = row.CreateCell(0);
※記住了:在NPOI元件下使用CreateSheet()方法產生的工作表,初次操作row或cell時,要直接使用CreateRow或CreateCell,不能習慣性地先讀取row或cell再判斷是否為nll的方式!