POI進行Excel的合併單元格資料處理

2021-10-14 01:19:02 字數 2969 閱讀 9192

近日接到乙個要處理合併excel單元格的上料表的需求,就到網上找了一些模板,發現有的技術大牛還是挺厲害的,對他們致以敬意。

在這個類中將傳入的檔案轉化成流物件,再對其進行具體的資料處理

public

class

excelutilsmerge

catch

(ioexception e)

if(wb == null)

// 獲取excel中存在的sheet個數

int sheetsnum = wb.

getnumberofsheets()

;if(sheetsnum <=0)

for(

int i =

0; i < sheetsnum; i++

)int coloumnum = sheet.

getrow(0

).getphysicalnumberofcells()

; result.

addall

(dealwithexcelsheet

(sheet));

// 列總數

excelmap.

put(

"totalcolumnnumber"

, coloumnum)

;// 資料集

excelmap.

put(

"data"

, result);}

return excelmap;

}/**

* @description: 讀取sheet中的資料

* @author: drj

* @date: 2019/5/22 17:14

*/private

static list

>

dealwithexcelsheet

(sheet sheet)

//迴圈列

for(

int j =

0; j < row.

getphysicalnumberofcells()

; j++

)// 讀取單元格資料格式(標記為字串)

cell.

setcelltype

(celltype.string)

; string value = cell.

getstringcellvalue()

;// 處理有值的cell

if(stringutils.

isempty

(value)

)try

catch

(numberformatexception e)

} result.

add(record);}

return result;

}/**

* @param cell 當前cell

* @param sheet 當前sheet

* @description: 獲取當前cell合併的行數

* @author: drj

* @date: 2019/5/22 18:00

*/public

static

intgetmergerownum

(cell cell, sheet sheet)

}return mergesize;

}/**

* @param cell 當前cell

* @param sheet 當前sheet

* @description: 獲取合併的列數

* @author: drj

* @date: 2019/5/22 17:59

*/public

static

intgetmergecolumnum

(cell cell, sheet sheet)

}return mergesize;

}}

這個類定義了要返回的結果集物件,封裝了開始行結束行,開始列結束列,以及單元格的值.

public

class

excelentity

public

void

setstartrow

(int startrow)

public

intgetendrow()

public

void

setendrow

(int endrow)

public

intgetstartcol()

public

void

setstartcol

(int startcol)

public

intgetendcol()

public

void

setendcol

(int endcol)

public string getvalue()

public

void

setvalue

(string value)

}

返回的結果集的資料型別是list,然後每一行封裝為乙個型別為excelentity的list.

inputstream inputstream = file.

getinputstream()

; map

result = excelutilsmerge.

readfilecontenttoentity

(inputstream)

; list

> data =

(list

>

) result.

get(

"data"

);

網上的技術點琳琅滿目,而在這樣雜而亂的網路環境中,亦要吸取其精華,讓它變為自己的東西,這才是真正的學習~

java 基於poi 寫入excel 合併單元格

效果圖如下 提供個人的一些想法,大牛不要看 1 對於要寫入的資料,樹形結構,構建臨時類,巢狀,如下圖 類似即可 public class valueobj else private static void setvaluebyrowandcol int row,int col,string valu...

POI匯出Excel 合併單元格

合併方法 sheet.addmergedregion new cellrangeaddress firstrow,lastrow,firstcol,lastcol 引數分別表示 開始行索引,結束行索引,開始列索引,結束列索引.使用poi大致步驟 1.建立excel模板,並建立輸入流 fileinpu...

poi合併單元格

注 我這裡合併的是列的相同單元格,效果如下 poi合併單元格的方法是addmergedregion 合併單元格 param sheet 要合併單元格的excel 的sheet param cellline 要合併的列 param startrow 要合併列的開始行 param endrow 要合併列...