Excel 的處理一 POI 解析excel

2021-10-21 10:35:18 字數 2790 閱讀 4149

【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,郵箱,郵箱所在的行...