NPOI操作Excel 一 NPOI基礎

2022-06-25 04:06:14 字數 2389 閱讀 4116

用c#讀取excel的方法有很多中,由於近期工作需要,需要解析的excel含有合併單元格以及背景色等特殊要求,故在網上查了一些關於讀excel的方法的優缺點,覺得npoi能滿足我的需要,所以搜尋了一些資料做了一些測試,下面有些內容有些是**於別人的部落格,都備有出處,只是想把一些覺得對自己有用的記錄一下,望見諒。

我們先說了解一下npoi的優缺點:

優點:讀取資料快,讀取方式靈活,包含多個sheet的excel單元格合併設定單元格字段、顏色、設定單元格為下拉框,並限制輸入值,設定單元格只能輸入資料等(能解決幾乎所有的excel問題)。

缺點:不能對已經開啟的excel進行操作,需要匯入多個dll檔案(npoi、npoi.hpsf、npoi.hssf、npoi.hssf.usermodel、npoi.poifs、npoi.util

)1、常用的基本方法:

建立工作簿                                                 iworkbook workbook = new xssfworkbook();

按指定名稱建立sheet                                   workbook.createsheet("sheetname");

移出sheet                                                 workbook.removesheetat(sheetindex);

按名稱獲得sheet物件                                   isheet sheet = workbook.getsheet("sheetname ");

根據索引獲得sheet物件                                isheet sheet = workbook.getsheetat(sheetindex);

獲得某乙個isheet的所有irow,通常可以用       isheet.getrowenumerator()

獲得某一特定行,可以直接用                          isheet.getrow(rowindex)

工作表中第乙個有資料行的行號                       isheet.firstrownum

工作表中最後乙個有資料行的行號                    isheet.lastrownum

一行中第乙個有資料列的列號                          irow.firstcellnum

一行中最後乙個有資料列的列號                       irow.lastcellnum

獲取sheet所有合併單元格索引                         isheet.nummergedregions

獲取某合併單元格的位址(i是合併單元格索引)      isheet.getmergedregion(i)

獲得資料型別cellrangeaddress,含起始行號和列號

獲取某單元格值                                                 row.getcell(j).stringcellvalue.trim()

公式單元格如果是數字可以:                          row.getcell(j).numericcellvalue.tostring()

2、npoi.dll中包含的模組

npoi.util          基礎輔助庫 

npoi.poifs      ole2格式讀寫庫,主要負責處理documentinformation 

npoi.ddf        microsoft drawing格式讀寫庫 

npoi.ss          excel 2003和excel 2007操作庫共用的介面庫以及公用模組實現,如公式計算庫  

npoi.hpsf       ole2的summary information和document summary information屬性讀寫庫 

npoi.hssf      excel biff格式讀寫庫,這是使用者用的最多的命名空間

3、npoi.ooxml.dll中包含的模組(主要是2007版本操作方法)

npoi.xssf          excel 2007操作庫,大部分物件都實現了npoi.ss的介面 

npoi.xwpf         word 2007操作庫

4、excel單元格值基本型別

unknown = -1,  // 未知

numeric = 0,  // 數值型

string = 1,  // 文字型

formula = 2,  // 公式型

blank = 3,  // 空白

boolean = 4,  // 布林型

error = 5,  // 錯誤

參考:

利用NPOI操作excel匯出

npoi外掛程式要.netframe4.0 開啟excel按鈕事件 private void button1 click object sender,eventargs e private void button2 click object sender,eventargs e if datearr...

NPOI 初次操作(新建Excel)

1.由於在某些電腦上沒有安裝office,或者有許可權限制,使用com元件進行讀寫excel的話會出現問題,為此,npoi是乙個很好的選擇,npoi可以在上述環境中滿足office的操作需求,並且功能也很完善。2.初次接觸npoi,花了一些時間來學習一下,以下 功能是建立乙個工作簿,修改然後儲存。3...

Npoi匯入匯出Excel操作

datatable匯出excel private static void gridtoexcelbynpoi datatable dt,string strexcelfilename icellstyle cellstyle workbook.createcellstyle 為避免日期格式被exce...