POI的基本使用

2021-08-03 12:57:39 字數 3167 閱讀 2178

poi的基本使用

首先,理解一下乙個excel的檔案的組織形式,乙個excel檔案對應於乙個workbook(hssfworkbook),乙個workbook可以有多個sheet(hssfsheet)組成,乙個sheet是由多個row(hssfrow)組成,乙個row是由多個cell(hssfcell)組成。

下面詳細介紹poi操作的具體例項和思路:

匯出大體思路如下:

實際操作poi報表進行匯出excel文件時的例項如下:

第一步,建立乙個webbook,對應乙個excel檔案

步驟1:hssfworkbook wb = new hssfworkbook();

第二步,在webbook中新增乙個sheet頁,對應excel檔案中的sheet頁

以下createsheet中填寫sheet頁名稱 並非檔名稱

步驟2:hssfsheet sheet = wb.createsheet(「學生表一」);

第三步,在sheet中新增表頭第0行,注意老版本poi對excel的行數列數有限制short

步驟3:hssfrow row = sheet.createrow((int) 0);

第四步,建立乙個居中格式,在建立單元格是設定居中格式

步驟4:

hssfcellstyle style = wb.createcellstyle();

style.setalignment(hssfcellstyle.align_center);

第五步,建立單元格填入資料並設定居中格式

步驟5:

①建立單元格:

hssfcell cell = row.createcell((short) 0);

②設定單元格內容:

cell.setcellvalue(「內容」);

③將以上建立好的居中格式新增進單元格:cell.setcellstyle(style);

第六步,使用位元組輸出流將檔案存入指定路徑

fileoutputstream fout = new fileoutputstream(「指定路徑」);

wb.write(fout);

fout.close();

注意:區分建立行使用(int)建立列使用(short)

基本操作:

建立excel物件:new hssfworkbook();

建立sheet頁:**(excel物件).createsheet(「學生表一」);

建立行:**(sheet物件).createrow((int) 0);

建立列:**(行物件).createcell((short) 0);

建立乙個樣式物件:**(excel物件).createcellstyle();

新增居中格式:**(樣式物件).setalignment(hssfcellstyle.align_center);

匯入大體思路如下

1.使用 bufferedinputstream輸入流 讀取excel文件

2.得到檔案後採用poifsfilesystem 進行解析並轉為hssfworkbook物件

3.使用hssfworkbook物件.getsheetat(0);獲取該excel的第乙個sheet頁

4.sheet. getlastrownum()獲取該sheet頁的資料條數進行for迴圈每一條資料【for(int i= 0 ; i< sheet. getlastrownum();i++)】

5.hssfrow row =sheet.getrow(i)獲取此行資料

6.row. getlastcellnum()獲取本行有n條資料

7.row.getcell(columnindex);獲取單元格並匯出值存入相應的物件中

8.使用存好的物件進行資料庫新增操作

9.匯入完成

具體匯入操作例項:

第一步、建立輸入流並轉換為hssfworkbook物件

1、bufferedinputstream in = new

bufferedinputstream(new fileinputstream(new file(「檔案路徑」)));

2、poifsfilesystem fs = new poifsfilesystem(in);

3、hssfworkbook wb = new hssfworkbook(fs);

第二步、用hssfworkbook獲取第乙個sheet頁(sheet頁下標從0開始)

hssfsheet st = wb.getsheetat(0);

第三步使用for迴圈迴圈每條資料(行)並獲取行物件

for (int rowindex = 0; rowindex <= st.getlastrownum(); rowindex++)

第四步迴圈行物件並獲取單元格物件

for (short columnindex = 0, size = row.getlastcellnum(); columnindex <= size; columnindex++)

第五步將單元格中不同格式的的值以不同方式匯出(可以直接複製使用)最終value為單元中的值可進行任意操作

if (cell != null) else

} else

break;

case hssfcell.cell_type_formula:

// 匯入時如果為公式生成的資料則無值

if (!cell.getstringcellvalue().equals(「」)) else

break;

case hssfcell.cell_type_blank:

break;

case hssfcell.cell_type_error:

value = 「」;

break;

case hssfcell.cell_type_boolean:

value = (cell.getbooleancellvalue() == true ? 「y」

: 「n」);

break;

default:

value = 「」;

}

使用poi讀取excel的基本方法

int colounum sheet.getrow 0 getphysicalnumberofcells 獲得總列數 int rownum sheet.getlastrownum 獲得總行數 使用poi讀書excel的時候,會出現空異常,要新增空異常判斷 decimalformat df new d...

poi的簡單使用

日常開發中,需要匯出excel 時,對於一些簡單的excel,hutool封裝的excel工具足矣,對於一些稍複雜的excel,例如涉及合併單元格 複雜樣式,可使用原生的poi生成 以下記錄一些常用方法。建立 物件 hssfworkbook workbook newhssfworkbook 建立工作...

Poi工具使用

list.add new article 001 html5 文章沒有內容,就是湊字數 new date 1 list.add new article 002 html5 文章沒有內容,就是湊字數 new date 2 list.add new article 003 html5 文章沒有內容,就是...