使用poi對Excel進行建立 讀取 寫入等操作

2021-09-13 02:11:43 字數 2449 閱讀 9605

最近遇到乙個專案,其中需要對excel進行讀取、寫入、建立等操作,於是在網上查了資料使用了poi包來解析excel,在此總結一下poi包的一些簡單用法,以備以後使用,如有不對之處,歡迎各位指正。

public class readexceltool 

file file = new file(filepath);

if (file == null || !file.exists())

return true;

}//讀取excel檔案

public listreadxls(string filepath) throws exception

//判斷檔案的型別

//public static boolean i***cel2003(string filepath)

//public static boolean i***cel2007(string filepath)

boolean i***cel2003 = true;

if (wdwutil.i***cel2007(filepath))

//呼叫方法讀取excel

file file = new file(filepath);

is = new fileinputstream(file);

datalist = read(is,i***cel2003);

is.close();

}catch (exception e)finally catch (exception ex)}}

return datalist;

}//根據不同版本讀取excel檔案

public listread(inputstream inputstream,boolean i***cel2003)else

datalist = read(wb);

}catch (ioexception e)

return datalist;

}//解析excel**

private listread(workbook wb)

//迴圈excel的行

for(int r=1;r值得注意的是,在取單元格的值時,excel單元格中不同格式的資料是對應不同的方法的,因為poi會檢測資料的型別。如此處獲取文字資訊則使用getstringcellvalue(),如果讀取其他格式的資料則需要不同的方法:

1.數值型別使用getnumericcellvalue()

2.布林型別使用getbooleancellvalue()

3.公式使用getcellformula()

此外還有一些其他的型別如空值、錯誤等。

如果我們需要生成的是乙個有規律的excel,那麼使用poi來生成就非常方便;而如果是乙個沒有規律的excel(某些地方需要合併單元格,某些地方需要加邊框),那麼建議使用第三種操作(寫入excel),越是複雜的excel生成起來越麻煩。

//根據提供的excel檔案模板生成乙個excel

public static hssfworkbook buildexcel()

從**中可以看出,要建立乙個excel,首先要建立乙個workbook,在workbook上建立sheet,在sheet中建立每乙個單元格,並且設定其樣式。

因為我使用的是wps開啟excel,所以我的列寬顯示的單位是字元,行高顯示的單位是磅。假如給了乙個模板,按照其來建立excel,那麼設定列寬的時候值就取col*256*1.1,col是模板中列的列寬,這樣得到的結果會比原有寬度稍大;在設定行高的時候,值就取20*row,row是模板中行的行高,這樣得到的結果與原有行高相同。

另外,在給合併單元格設定樣式和填值得時候,只需要在這個合併單元格的左上角單元格設定即可,給個例子。

此處我合併了第4行至第7行,第3列至第5列的單元格,那麼針對第四行第三列這個單元格設定樣式和填值即可。但是這裡有乙個比較坑的地方,那就是如果想給這個合併單元格新增邊框的話,就不能只針對這乙個單元格,而是要將這個合併單元格外圍的所有子單元格都設定好樣式(帶邊框)。

其實寫入excel相當於前兩種用法的結合,先讀取excel獲得乙個workbook,再對這個workbook進行各種操作。

public static hssfworkbook addcompanymessagetoexcel(hssfworkbook wb, result re){

sheet sheet = wb.getsheet("sheet1");

cell cell = sheet.getrow(4).getcell(2);

cell.setcellvalue(re.getbei().getentname());

//迴圈對單元格進行調整

for(int i=0;i讀取excel獲得workbook可以參見文章開頭第一種用法。

使用POI對Excel進行操作

要使用poi,需要在pom檔案中加入以下依賴 org.apache.poi poi3.12 org.apache.poi poi ooxml 3.12 然後就是 如何使用它來讀取excel檔案了 inputstream is new fileinputstream filename excel檔名 ...

使用poi建立Excel檔案

通過poi操作excel十分方便,將乙個excel抽象為乙個workbook,乙個表單頁抽象為sheet,表單中的一行抽象為row,一行中的乙個單元格可以抽象為cell。hssf對應的是97 03格式 xls xssf對應的是07格式的 xlsx workbook的獲取有以下幾種方式 1.可以通過w...

使用POI操作Excel

apache的jakata專案poi http poi.apache.org 用來操作excel,並能滿足大部分需要.poi下面有幾個子專案,其中hssf xssf專案 http poi.apache.org spreadsheet index.html 用來實現excel讀寫的.public st...