近日接到乙個要處理合併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 要合併列...