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 文章沒有內容,就是...