import org.apache.poi.ss.usermodel.Workbook; //導入方法依賴的package包/類
/**
* excel 下載
*/
@RequestMapping(value = "downLoad")
public void downLoad(HttpServletRequest request, HttpServletResponse response) throws Exception {
Workbook wb = null;
try {
logger.info(">>>>>>>>ReportViewController.downLoad start>>");
//=======================================數據
List> datas = Lists.newArrayList();
Map data0 = Maps.newHashMap();
data0.put("date", "2017-01-01");
data0.put("date1", "2017-01-01");
Map data1 = Maps.newHashMap();
data1.put("shoujidai","100");
data1.put("daxuedai","100");
data1.put("zirandai","100");
data0.put("zidonghebishu",data1);
datas.add(data0);
//==========================================
//設置excel模板
Map templateParams = Maps.newHashMap();
XLSTransformer transformer = new XLSTransformer();
wb = transformer.transformXLS(App.class.getResourceAsStream("/xls/excel.xlsx"), templateParams);
Sheet billInfoSheet = wb.getSheet("sheet1");
//設置excel展示配置
ExcelExportSetting excelExportSetting = new ExcelExportSetting();
List cellList = Lists.newArrayList();
//一行數據的第一列
cellList.add(new ExcelMergeCell("日期","date"));
cellList.add(new ExcelMergeCell("日期1","date1"));
//一行數據的第二個列合並單元格的
ExcelMergeCell excelMergeCell = new ExcelMergeCell("自動電核筆數","zidonghebishu",
Arrays.asList(new ExcelCell("大學貸","daxuedai"),
new ExcelCell("手機貸","shoujidai"),
new ExcelCell("自然貸","zirandai")));
cellList.add(excelMergeCell);
excelExportSetting.setHeaderRow(cellList);//設置表頭
excelExportSetting.setDataList(datas);//設置數據
//寫入excel
ExcelPoiHelp.poiWrite(wb, billInfoSheet, excelExportSetting);
//寫入response
String outFile = "outputFile.xls";
response.reset();
response.addHeader("Content-Disposition", "attachment;filename="+ new String(outFile.getBytes()));
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/vnd.ms-excel;charset=utf-8");
wb.write(toClient);
} catch (Exception e) {
e.printStackTrace();
} finally {
wb.close();
}
}