【03與07版本excel區別:】
一、字尾不同:前者.xls,後者.xslx
二、前者行數有最大行數限制(最大65536行),後者無行數限制;
1.1 簡單方式:
①載入檔案路徑、獲取流;(new fileinputstream(filepath),再把流放入到工作簿裡,此時inputstream物件就讀取到工作簿裡的內容了)
②建立工作簿;(new hssfworkbook(inputstream)、new xssfworkbook(inputstream):03版是hssfworkbook、07版是xssfworkbook)
③得到表;(workbook.getsheetat(num))
④得到行;(sheet.getrow(num))
⑤得到列;(row.getcell(num))
@test
public void testread07() throws ioexception
1.2 迴圈行列讀取:
①載入檔案路徑、獲取流;(new fileinputstream(filepath),再把流放入到工作簿裡,此時inputstream物件就讀取到工作簿裡的內容了)
②建立工作簿;(new hssfworkbook(inputstream)、new xssfworkbook(inputstream):03版是hssfworkbook、07版是xssfworkbook)
③得到表;(workbook.getsheetat(num))
④得到總行數進行迴圈;(sheet.getphysicalnumberofrows()獲取總行數,進行總行數的for迴圈)
⑤迴圈每一行獲取列;(sheet.getrow(0).getphysicalnumberofcells()獲取第一行總列數,進行每一行(即單元格)的for迴圈)
@test
public void testcelltype() throws ioexception else
break;
case hssfcell.cell_type_error: //錯誤
system.out.print("【資料型別錯誤】");
break;
}system.out.println(cellvalue);}}
}} inputstream.close();
}
2.1 簡單方式:
①建立乙個工作簿;(new hssfworkbook()、new xssfworkbook())
②建立乙個工作表;(workbook.createsheet(傳入要建立的某乙個sheet名))
③建立乙個行;(sheet.createrow(num),num=0建立第一行)
④建立乙個單元格,賦值;(row1.createcell(num),cell12.setcellvalue(222))
⑤載入檔案路徑建立輸出流;(new fileoutputstream(檔案路徑,包括要建立的excel檔案的自定義檔名稱))
⑥通過工作簿將輸出流寫出;( workbook.write(fos))
⑦關閉流;(fos.close())
@test
public void testwrite03() throws ioexception
2.2 迴圈行列讀取:
①建立乙個工作簿;(new hssfworkbook()、new xssfworkbook())
②建立乙個工作表;(workbook.createsheet(傳入要建立的某乙個sheet名))
(定義乙個最大行數值:進行迴圈行、迴圈列的賦值;)
③迴圈建立行;(sheet.createrow(rownum),rownum從0開始,小於自定義最大行數值)
④迴圈每一行,建立每個單元格,賦值;(row1.createcell(cellnum),cell12.setcellvalue(cellnum))
⑤載入檔案路徑建立輸出流;(new fileoutputstream(檔案路徑,包括要建立的excel檔案的自定義檔名稱))
⑥工作簿將輸出流寫出;( workbook.write(fos))
⑦關閉流;(fos.close())
@test
public void testwrite03bigdata() throws ioexception
} fileoutputstream outputstream = new fileoutputstream(path + "testwrite03bigdata.xls");
workbook.write(outputstream);
outputstream.close();
}
POI解析Excel的日期格式處理
業務開發中遇見的問題,excel對日期格式處理比較麻煩一點,具體實現如下 hssfrow row sheet.getrow i 獲取行元素 hssfcell cell row.getcell k 獲取某個單元格 date date cell.getdatecellvalue 獲取日期值 獲取cell...
使用POI解析Excel
最近在寫專案,涉及到批量新增學生資訊,通過網上查了眾多資料,終於通過上傳乙個excel檔案的方式加以解決,現特此記錄下來,以備以後檢視。解析的核心 suppresswarnings static access public static listreadxls inputstream inputst...
POI解析Excel優化二
公司專案中要做乙個excel匯入會員資訊的功能要求每條記錄的會員郵箱不能重複,但是資料庫中有2w條記錄,想到每次匯入的時候可能都要去資料庫中查,匯入的速度會很慢,我就想怎麼才能優化。我的處理方法是 1.先做郵箱校驗 把excel裡的所有郵箱儲存到一張臨時表中,臨時的字段含有 id,郵箱,郵箱所在的行...