HSSFWorkbook(poi)導(dǎo)出excel表格

本文與另一篇文章關(guān)聯(lián):

csv格式導(dǎo)出excel報表

其中:

String accountDate? 入?yún)ⅲㄈ掌冢?/p>

AccountInfoEntityResp accountInfoEntityResp? 導(dǎo)出的xml報文內(nèi)容(轉(zhuǎn)換成obj對象)

xml報文解析見另一篇:xml報文解析

HttpServletRequest request?

HttpServletResponse response?

主要核心代碼如下:

/**

? ? * 導(dǎo)出exc方法

? ? */

? ? public void exportExcel(String accountDate, AccountInfoEntityResp accountInfoEntityResp,HttpServletRequest request,HttpServletResponse response) throws IOException {

? ? ? ? // 聲明一個工作簿

? ? ? ? HSSFWorkbook wb = new HSSFWorkbook();

? ? ? ? // 聲明一個工作單并命名

? ? ? ? HSSFSheet sheet = wb.createSheet("accountInfo");

? ? ? ? // 創(chuàng)建標題樣式

? ? ? ? HSSFCellStyle headerStyle = (HSSFCellStyle) wb.createCellStyle();

? ? ? ? headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中

? ? ? ? headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直對齊居中

? ? ? ? headerStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框

? ? ? ? headerStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框

? ? ? ? headerStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框

? ? ? ? headerStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框

? ? ? ? //創(chuàng)建字體

? ? ? ? HSSFFont header_Font = (HSSFFont) wb.createFont();

? ? ? ? header_Font.setFontName("微軟雅黑");

? ? ? ? header_Font.setFontHeightInPoints((short) 15);

? ? ? ? headerStyle.setFont(header_Font);

? ? ? ? // 創(chuàng)建單元格樣式

? ? ? ? HSSFCellStyle cell_Style = (HSSFCellStyle) wb.createCellStyle();// 設(shè)置字體樣式

? ? ? ? cell_Style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

? ? ? ? cell_Style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直對齊居中

? ? ? ? cell_Style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框

? ? ? ? cell_Style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框

? ? ? ? cell_Style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框

? ? ? ? cell_Style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框

? ? ? ? cell_Style.setWrapText(true); // 設(shè)置為自動換行

? ? ? ? HSSFFont cell_Font = (HSSFFont) wb.createFont();

? ? ? ? cell_Font.setFontName("微軟雅黑");

? ? ? ? cell_Font.setFontHeightInPoints((short) 12);

? ? ? ? cell_Style.setFont(cell_Font);

? ? ? ? //創(chuàng)建自由樣式

? ? ? ? HSSFCellStyle free_Style = (HSSFCellStyle) wb.createCellStyle();// 設(shè)置字體樣式

? ? ? ? free_Style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

? ? ? ? free_Style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

? ? ? ? HSSFFont free_Font = (HSSFFont) wb.createFont();

? ? ? ? free_Font.setFontName("微軟雅黑");

? ? ? ? free_Font.setFontHeightInPoints((short) 12);

? ? ? ? free_Style.setFont(free_Font);

? ? ? ? //【結(jié)算場次列表】單元格行數(shù):SttlList->SttlInf集合size大小+1(標題行)

? ? ? ? int sttlInfCount = accountInfoEntityResp.getSttlList().size()+1;

? ? ? ? //【批次列表】單元格行數(shù):SttlList->SttlInf->BatchList->BatchInf的集合大小+1(標題行)

? ? ? ? int batchInfCount = 1;

? ? ? ? //【分項列表】單元格行數(shù):SttlList->SttlInf->BatchList->BatchInf->SubItemList->SubItemInf的集合大小+1(標題行)

? ? ? ? int subItemInfCount = 0;

? ? ? ? if(accountInfoEntityResp.getSttlList() != null){

? ? ? ? ? ? for(int i = 0; i< accountInfoEntityResp.getSttlList().size() ;i++){

? ? ? ? ? ? ? ? //批次列表大小

? ? ? ? ? ? ? ? batchInfCount = batchInfCount + accountInfoEntityResp.getSttlList().get(i).getBatchList().size();

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? //結(jié)算場次列表+批次列表+分項列表 =明細單元格行數(shù)

? ? ? ? int detailCount = sttlInfCount + batchInfCount + subItemInfCount ;

? ? ? ? //1.1創(chuàng)建合并單元格對象

? ? ? ? //頭部"賬務(wù)日期"

? ? ? ? CellRangeAddress callRangeAddress = new CellRangeAddress(0,0,0,7);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? //第二行

? ? ? ? CellRangeAddress callRangeAddress1 = new CellRangeAddress(1,1,0,1);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? CellRangeAddress callRangeAddress1_2 = new CellRangeAddress(1,1,2,3);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? CellRangeAddress callRangeAddress1_3 = new CellRangeAddress(1,1,4,5);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? CellRangeAddress callRangeAddress1_4 = new CellRangeAddress(1,1,6,7);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? //第三行

? ? ? ? CellRangeAddress callRangeAddress2 = new CellRangeAddress(2,2,0,1);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? CellRangeAddress callRangeAddress2_3 = new CellRangeAddress(2,2,2,3);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? CellRangeAddress callRangeAddress2_4 = new CellRangeAddress(2,2,4,5);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? CellRangeAddress callRangeAddress2_5 = new CellRangeAddress(2,2,6,7);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? //明細

? ? ? ? CellRangeAddress callRangeAddress3 = new CellRangeAddress(3,3,0,7);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? //結(jié)算場次列表

? ? ? ? CellRangeAddress callRangeAddress4 = new CellRangeAddress(4,4,0,7);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? //批次列表

? ? ? ? CellRangeAddress callRangeAddress5 = new CellRangeAddress(sttlInfCount+4+1,sttlInfCount+4+1,0,7);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? //分項列表

? ? ? ? CellRangeAddress callRangeAddress6 = new CellRangeAddress(sttlInfCount+4+1+batchInfCount+1,sttlInfCount+4+1+batchInfCount+1,0,7);//起始行,結(jié)束行,起始列,結(jié)束列

? ? ? ? //2.1加載合并單元格對象

? ? ? ? sheet.addMergedRegion(callRangeAddress);

? ? ? ? sheet.addMergedRegion(callRangeAddress1);

? ? ? ? sheet.addMergedRegion(callRangeAddress1_2);

? ? ? ? sheet.addMergedRegion(callRangeAddress1_3);

? ? ? ? sheet.addMergedRegion(callRangeAddress1_4);

? ? ? ? sheet.addMergedRegion(callRangeAddress2);

? ? ? ? sheet.addMergedRegion(callRangeAddress2_3);

? ? ? ? sheet.addMergedRegion(callRangeAddress2_4);

? ? ? ? sheet.addMergedRegion(callRangeAddress2_5);

? ? ? ? sheet.addMergedRegion(callRangeAddress3);

? ? ? ? sheet.addMergedRegion(callRangeAddress4);

? ? ? ? sheet.addMergedRegion(callRangeAddress5);

? ? ? ? sheet.addMergedRegion(callRangeAddress6);

? ? ? ? //3.1創(chuàng)建頭標題行;并且設(shè)置頭標題

? ? ? ? HSSFRow row = sheet.createRow(0);

? ? ? ? HSSFCell cell = row.createCell(0);

? ? ? ? //加載單元格樣式

? ? ? ? cell.setCellStyle(headerStyle);

? ? ? ? cell.setCellValue("財務(wù)日期:"+accountDate);

? ? ? ? //4.1創(chuàng)建第二行

? ? ? ? HSSFRow rower = sheet.createRow(1);

? ? ? ? //結(jié)算總筆數(shù)

? ? ? ? HSSFCell celler_1 = rower.createCell(0);

? ? ? ? //借方金額

? ? ? ? HSSFCell celler_2 = rower.createCell(2);

? ? ? ? //貸方金額

? ? ? ? HSSFCell celler_3 = rower.createCell(4);

? ? ? ? //結(jié)算場次明細

? ? ? ? HSSFCell celler_4 = rower.createCell(6);

? ? ? ? //加載單元格樣式

? ? ? ? celler_1.setCellStyle(cell_Style);

? ? ? ? celler_1.setCellValue("結(jié)算總筆數(shù)");

? ? ? ? celler_2.setCellStyle(cell_Style);

? ? ? ? celler_2.setCellValue("借方金額");

? ? ? ? celler_3.setCellStyle(cell_Style);

? ? ? ? celler_3.setCellValue("貸方金額");

? ? ? ? celler_4.setCellStyle(cell_Style);

? ? ? ? celler_4.setCellValue("結(jié)算場次明細");

? ? ? ? //創(chuàng)建第三行

? ? ? ? HSSFRow rowsan = sheet.createRow(2);

? ? ? ? //結(jié)算總筆數(shù)

? ? ? ? HSSFCell cellsan_1 = rowsan.createCell(0);

? ? ? ? //借方金額

? ? ? ? HSSFCell cellsan_2 = rowsan.createCell(2);

? ? ? ? //貸方金額

? ? ? ? HSSFCell cellsan_3 = rowsan.createCell(4);

? ? ? ? //結(jié)算場次明細

? ? ? ? HSSFCell cellsan_4 = rowsan.createCell(6);

? ? ? ? //加載單元格樣式

? ? ? ? cellsan_1.setCellStyle(cell_Style);

? ? ? ? cellsan_1.setCellValue(accountInfoEntityResp.getSttlCntNb());

? ? ? ? cellsan_2.setCellStyle(cell_Style);

? ? ? ? String tmpVal = String.valueOf(accountInfoEntityResp.getDebitCntAmt());

? ? ? ? cellsan_2.setCellValue(tmpVal);

? ? ? ? cellsan_3.setCellStyle(cell_Style);

? ? ? ? String tmpVal2 = String.valueOf(accountInfoEntityResp.getCreditCntAmt());

? ? ? ? cellsan_3.setCellValue(tmpVal2);

? ? ? ? cellsan_4.setCellStyle(cell_Style);

? ? ? ? cellsan_4.setCellValue("");

? ? ? ? //創(chuàng)建明細標題、結(jié)算場次列表標題、批次列表標題唧席、分項列表標題

? ? ? ? //第四行:明細

? ? ? ? HSSFRow rowsi = sheet.createRow(3);

? ? ? ? HSSFCell cellsi = rowsi.createCell(0);

? ? ? ? //加載單元格樣式

? ? ? ? cellsi.setCellStyle(cell_Style);

? ? ? ? cellsi.setCellValue("明細");

? ? ? ? //第五行:結(jié)算場次列表

? ? ? ? HSSFRow rowwu = sheet.createRow(4);

? ? ? ? HSSFCell cellwu = rowwu.createCell(0);

? ? ? ? //加載單元格樣式

? ? ? ? cellwu.setCellStyle(cell_Style);

? ? ? ? cellwu.setCellValue("結(jié)算場次列表");

? ? ? ? //第六行:結(jié)算場次列表-標題欄

? ? ? ? HSSFRow rowsix = sheet.createRow(5);

? ? ? ? HSSFCell cellsix_1 = rowsix.createCell(0);

? ? ? ? HSSFCell cellsix_2 = rowsix.createCell(1);

? ? ? ? HSSFCell cellsix_3 = rowsix.createCell(2);

? ? ? ? //加載單元格樣式

? ? ? ? cellsix_1.setCellStyle(cell_Style);

? ? ? ? cellsix_1.setCellValue("報文標識號");

? ? ? ? cellsix_2.setCellStyle(cell_Style);

? ? ? ? cellsix_2.setCellValue("場次借貸標識");

? ? ? ? cellsix_3.setCellStyle(cell_Style);

? ? ? ? cellsix_3.setCellValue("場次金額");

? ? ? ? //第7行:批次列表

? ? ? ? HSSFRow rowseven = sheet.createRow(sttlInfCount+4+1);

? ? ? ? HSSFCell cellseven = rowseven.createCell(0);

? ? ? ? //加載單元格樣式

? ? ? ? cellseven.setCellStyle(cell_Style);

? ? ? ? cellseven.setCellValue("批次列表");

? ? ? ? //第8行:批次列表-->標題欄

? ? ? ? HSSFRow rowsegiht = sheet.createRow(sttlInfCount+4+2);

? ? ? ? HSSFCell cellegiht_1 = rowsegiht.createCell(0);

? ? ? ? HSSFCell cellegiht_2 = rowsegiht.createCell(1);

? ? ? ? HSSFCell cellegiht_3 = rowsegiht.createCell(2);

? ? ? ? HSSFCell cellegiht_4 = rowsegiht.createCell(3);

? ? ? ? //加載單元格樣式

? ? ? ? cellegiht_1.setCellStyle(cell_Style);

? ? ? ? cellegiht_1.setCellValue("報文標識號");

? ? ? ? cellegiht_2.setCellStyle(cell_Style);

? ? ? ? cellegiht_2.setCellValue("批次號");

? ? ? ? cellegiht_3.setCellStyle(cell_Style);

? ? ? ? cellegiht_3.setCellValue("批次借貸標識");

? ? ? ? cellegiht_4.setCellStyle(cell_Style);

? ? ? ? cellegiht_4.setCellValue("批次金額");

? ? ? ? //第9行:分項列表

? ? ? ? HSSFRow rowba = sheet.createRow(sttlInfCount+4+1+batchInfCount+1);

? ? ? ? HSSFCell cellba = rowba.createCell(0);

? ? ? ? //加載單元格樣式

? ? ? ? cellba.setCellStyle(cell_Style);

? ? ? ? cellba.setCellValue("分項列表");

? ? ? ? //第10行:分項列表—>標題欄

? ? ? ? HSSFRow rowsten = sheet.createRow(sttlInfCount+4+1+batchInfCount+2);

? ? ? ? HSSFCell cellten_1 = rowsten.createCell(0);

? ? ? ? HSSFCell cellten_2 = rowsten.createCell(1);

? ? ? ? HSSFCell cellten_3 = rowsten.createCell(2);

? ? ? ? HSSFCell cellten_4 = rowsten.createCell(3);

? ? ? ? HSSFCell cellten_5 = rowsten.createCell(4);

? ? ? ? HSSFCell cellten_6 = rowsten.createCell(5);

? ? ? ? HSSFCell cellten_7 = rowsten.createCell(6);

? ? ? ? HSSFCell cellten_8 = rowsten.createCell(7);

? ? ? ? //加載單元格樣式

? ? ? ? cellten_1.setCellStyle(cell_Style);

? ? ? ? cellten_1.setCellValue("批次號");

? ? ? ? cellten_2.setCellStyle(cell_Style);

? ? ? ? cellten_2.setCellValue("業(yè)務(wù)類型");

? ? ? ? cellten_3.setCellStyle(cell_Style);

? ? ? ? cellten_3.setCellValue("銀行金額機構(gòu)標識");

? ? ? ? cellten_4.setCellStyle(cell_Style);

? ? ? ? cellten_4.setCellValue("賬戶類型");

? ? ? ? cellten_5.setCellStyle(cell_Style);

? ? ? ? cellten_5.setCellValue("分項借方發(fā)生額");

? ? ? ? cellten_6.setCellStyle(cell_Style);

? ? ? ? cellten_6.setCellValue("分項借方發(fā)生筆數(shù)");

? ? ? ? cellten_7.setCellStyle(cell_Style);

? ? ? ? cellten_7.setCellValue("分項貸方發(fā)生額");

? ? ? ? cellten_8.setCellStyle(cell_Style);

? ? ? ? cellten_8.setCellValue("分項貸方發(fā)生筆數(shù)");

? ? ? ? //結(jié)算場次列表、批次列表數(shù)據(jù)鳄袍、分項列表數(shù)據(jù)

? ? ? ? List<SttlInf> sttlList = new ArrayList<SttlInf>();

? ? ? ? if(accountInfoEntityResp.getSttlList() != null ){

? ? ? ? ? ? sttlList = accountInfoEntityResp.getSttlList();

? ? ? ? }

? ? ? ? //5.操作單元格;將列表數(shù)據(jù)寫入excel

? ? ? ? if(sttlList != null){

? ? ? ? ? ? //結(jié)算場次列表數(shù)據(jù)

? ? ? ? ? ? //批次列表循環(huán)計數(shù)器

? ? ? ? ? ? int batInfCount = 0;

? ? ? ? ? ? //分項列表循環(huán)計數(shù)器

? ? ? ? ? ? int subItInfCount = 0;

? ? ? ? ? ? for(int j=0; j< sttlList.size(); j++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? HSSFRow row3 = sheet.createRow(j+6);

? ? ? ? ? ? ? ? HSSFCell cell0 = row3.createCell(0);

? ? ? ? ? ? ? ? cell0.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? cell0.setCellValue(sttlList.get(j).getSttlReptFlg());

? ? ? ? ? ? ? ? HSSFCell cell1 = row3.createCell(1);

? ? ? ? ? ? ? ? cell1.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? cell1.setCellValue(DCFlag(sttlList.get(j).getSttlDCFlg()));

? ? ? ? ? ? ? ? HSSFCell cell2 = row3.createCell(2);

? ? ? ? ? ? ? ? cell2.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? cell2.setCellValue(String.valueOf(sttlList.get(j).getSttlAmt()));

? ? ? ? ? ? ? ? List<BatchInf> BatchList = new ArrayList<BatchInf>();

? ? ? ? ? ? ? ? if(sttlList.get(j).getBatchList() != null){

? ? ? ? ? ? ? ? ? ? BatchList = sttlList.get(j).getBatchList();

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if(BatchList != null){

? ? ? ? ? ? ? ? ? ? //批次列表數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? for(int i = 0; i< BatchList.size(); i++){

? ? ? ? ? ? ? ? ? ? ? ? batInfCount++;

? ? ? ? ? ? ? ? ? ? ? ? HSSFRow row4 = sheet.createRow(sttlList.size()+6+1+batInfCount);

? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell3 = row4.createCell(0);

? ? ? ? ? ? ? ? ? ? ? ? cell3.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? cell3.setCellValue(sttlList.get(j).getSttlReptFlg());

? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell4 = row4.createCell(1);

? ? ? ? ? ? ? ? ? ? ? ? cell4.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? cell4.setCellValue(BatchList.get(i).getBatchId());

? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell5 = row4.createCell(2);

? ? ? ? ? ? ? ? ? ? ? ? cell5.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? cell5.setCellValue(DCFlag(BatchList.get(i).getBatchDCFlg()));

? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell6 = row4.createCell(3);

? ? ? ? ? ? ? ? ? ? ? ? cell6.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? cell6.setCellValue(String.valueOf(BatchList.get(i).getBatchNetAmt()));

? ? ? ? ? ? ? ? ? ? ? ? List<SubItemInf> SubItemList = new ArrayList<SubItemInf>();

? ? ? ? ? ? ? ? ? ? ? ? if(BatchList.get(i).getSubItemList() != null){

? ? ? ? ? ? ? ? ? ? ? ? ? ? SubItemList = BatchList.get(i).getSubItemList();

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? //分項列表數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ? ? if(SubItemList != null) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? for (int f = 0; f < SubItemList.size(); f++) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? subItInfCount++;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFRow row5 = sheet.createRow((sttlInfCount+4+1+batchInfCount+2)+subItInfCount);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell7 = row5.createCell(0);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell7.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell7.setCellValue(BatchList.get(i).getBatchId());

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String SubItemInf = SubItemList.get(f).getSubItemInf().replace("CNY","");

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String[] subArray = {};

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? subArray = SubItemInf.split("\\|");

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell8 = row5.createCell(1);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell8.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell8.setCellValue(busiType(subArray[0]));

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell9 = row5.createCell(2);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell9.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell9.setCellValue(subArray[1]);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell10 = row5.createCell(3);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell10.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell10.setCellValue(accountType(subArray[2]));

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell11 = row5.createCell(4);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell11.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell11.setCellValue(subArray[3]);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell12 = row5.createCell(5);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell12.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell12.setCellValue(subArray[4]);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell13 = row5.createCell(6);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell13.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell13.setCellValue(subArray[5]);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HSSFCell cell14 = row5.createCell(7);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell14.setCellStyle(cell_Style);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cell14.setCellValue(subArray[6]);

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? String downFilename = "accountInfo.xls";

? ? ? ? // 獲取文件的MIME類型:

? ? ? ServletContext servletContext = request.getServletContext();

? ? ? ? String contentType = servletContext.getMimeType(downFilename);

? ? ? ? // 將MIME類型放入響應(yīng)

? ? ? ? response.setContentType(contentType);

? ? ? ? // 瀏覽器類型

? ? ? ? String agent = request.getHeader("user-agent");

? ? ? ? // 獲取附件的名字和下載方式

? ? ? ? String contentDisposition = "attachment;filename=" + downFilename;

? ? ? ? // 將附件名字和下載方式放入響應(yīng)頭信息中

? ? ? ? response.setHeader("Content-Disposition", contentDisposition);

? ? ? ? // 告訴瀏覽器用什么軟件可以打開此文件

? ? ? ? /*response.setHeader("content-Type", "application/vnd.ms-excel");

? ? ? ? // 下載文件的默認名稱

? ? ? ? response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(downFilename, "utf-8"));*/

? ? ? ? ServletOutputStream out = response.getOutputStream();

? ? ? ? wb.write(out);

? ? ? ? out.close();

? ? }

最終導(dǎo)出excel表格如下:

關(guān)注個人技術(shù)公眾號:nick_coding1024

不定期分享最新前沿技術(shù)框架和bat大廠常用技術(shù)等,加群不定期分享行業(yè)內(nèi)大牛直播講課以及獲得內(nèi)退一線互聯(lián)網(wǎng)公司機會吏恭。

---------------------CSDN技術(shù)博客

原文:https://blog.csdn.net/xuri24/article/details/83112954

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拗小,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子砸泛,更是在濱河造成了極大的恐慌十籍,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唇礁,死亡現(xiàn)場離奇詭異勾栗,居然都是意外死亡,警方通過查閱死者的電腦和手機盏筐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門围俘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人琢融,你說我怎么就攤上這事界牡。” “怎么了漾抬?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵宿亡,是天一觀的道長。 經(jīng)常有香客問我纳令,道長挽荠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任平绩,我火速辦了婚禮圈匆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捏雌。我一直安慰自己跃赚,他們只是感情好,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布性湿。 她就那樣靜靜地躺著纬傲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窘奏。 梳的紋絲不亂的頭發(fā)上嘹锁,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機與錄音着裹,去河邊找鬼领猾。 笑死,一個胖子當著我的面吹牛骇扇,可吹牛的內(nèi)容都是我干的摔竿。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼少孝,長吁一口氣:“原來是場噩夢啊……” “哼继低!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起稍走,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤袁翁,失蹤者是張志新(化名)和其女友劉穎柴底,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粱胜,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡柄驻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了焙压。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸿脓。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涯曲,靈堂內(nèi)的尸體忽然破棺而出野哭,到底是詐尸還是另有隱情,我是刑警寧澤幻件,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布拨黔,位于F島的核電站,受9級特大地震影響绰沥,放射性物質(zhì)發(fā)生泄漏蓉驹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一揪利、第九天 我趴在偏房一處隱蔽的房頂上張望态兴。 院中可真熱鬧,春花似錦疟位、人聲如沸瞻润。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绍撞。三九已至,卻和暖如春得院,著一層夾襖步出監(jiān)牢的瞬間傻铣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工祥绞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留非洲,地道東北人。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓蜕径,卻偏偏與公主長得像两踏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子兜喻,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 使用首先需要了解他的工作原理 1.POI結(jié)構(gòu)與常用類 (1)創(chuàng)建Workbook和Sheet (2)創(chuàng)建單元格 (...
    長城ol閱讀 8,446評論 2 25
  • Apache POI 是用Java編寫的免費開源的跨平臺的 Java API梦染,Apache POI提供API給Ja...
    玩味Orz閱讀 2,622評論 0 0
  • 轉(zhuǎn)自鏈接 目錄 1.認識NPOI 2.使用NPOI生成xls文件 2.1創(chuàng)建基本內(nèi)容 2.1.1創(chuàng)建Workboo...
    腿毛褲閱讀 10,600評論 1 3
  • POI操作Excel Excel簡介一個excel文件就是一個工作簿workbook,一個工作簿中可以創(chuàng)建多張工作...
    灰氣球閱讀 4,724評論 2 48
  • 細雨青梅相對醒。荷葉才出帕识,蜓落尖尖頂泛粹。陌上青青芳草盛,蓮衣漸翠凌波映肮疗。 花杏盈盈香滿徑戚扳。樹上蟬鳴,樹下耕...
    白云之外閱讀 555評論 5 18