㈠ java 操作poi 導出excel 多個sheet
String[]handers={'1','2','4','5','6'};
HSSFWorkbookwb=newHSSFWorkbook();//創建工作簿
HSSFSheetsheet=wb.createSheet("sheet1");//第一個sheet
HSSFRowrowFirst=sheet.createRow(0);//第一個sheet第一行為標題
//寫標題了
for(inti=0;i<handers.length;i++){
//獲取第一行的每一個單元格
HSSFCellcell=rowFirst.createCell(i);
//往單元格裡面寫入值
cell.setCellValue(handers[i]);
}
//寫數據集
//假定數據集是list集合
for(inti=0;i<list.size;i++){
//獲取list裡面存在是數據集對象
Objectobj=list.get(i);
//創建數據行
HSSFRowrow=sheet.createRow(i+1);
//設置對應單元格的值
row.createCell(0).setCellValue("obj的屬性0");
row.createCell(1).setCellValue("obj的屬性1");
row.createCell(2).setCellValue("obj的屬性2");
row.createCell(3).setCellValue("obj的屬性3");
row.createCell(4).setCellValue("obj的屬性4");
row.createCell(5).setCellValue("obj的屬性5");
}
//寫出文件(path為文件路徑含文件名)
OutputStreamos=newFileOutputStream(newFile(path));
wb.write(os);
以上代碼為寫出單個sheet,多個sheet其實是同理的!關鍵就是在創建sheet的時候保證sheet名字不同,對於你的需求,個人建議利用面向對像的思想構建一個excel對象,對像屬性有文件名,文件sheet,然後在是sheet對象包含標題,數據集屬性,忘採納,謝謝!
㈡ 如何java將多個同一個execl的不同sheet拆分成不同的execl
推薦使用兩個函數:
match和countif
match用於匹配,如果在sheet1表中的某個單元格輸入公式:=match(a1,sheet2!a:a,0),意思是,在表sheet2中查找a1單元格的內容,如果找到,會返回找到的單元格的行標,如果沒找到,會返回.#n/a,可以判斷sheet1中的哪些項在sheet2中沒有.同理,也可以用sheet2中來索引sheet1
第二個函數是countif,假設條件同上,在sheet1中的某個單元格輸入公式:
=countif(a1,sheet2!a:a),意思是返回sheet2中的第a列中,有多少個值等於sheet1中的a1的單元值.
--沒事多看看幫助.