/** * 模板 * @param list * @return * @date 2019年4月2日 下午7:13:26 */ public HSSFWorkbook doexportZycrhhldmsz(List<?> listAre,List<?> tblistAre){ String[] excelHeader = { "城市", "PM2.5", "PM2.5", "PM2.5", "PM2.5", "优良天数比率", "优良天数比率", "优良天数比率", "优良天数比率"}; String[] excelHeader2 = { "城市", "现状", "现状", "省内排名","省内排名","现状","现状","省内排名","省内排名"}; String[] excelHeader3 = { "城市", "浓度值(μg/m³)", "同比变化情况(%)","名次","变动情况","比率(%)","同比变化情况(%)","名次","变动情况"}; // 单元格列宽 // int[] excelHeaderWidth = { 100, 180, 120, 150, 200, 80, 200 }; HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("data"); HSSFRow row = sheet.createRow((int) 0); HSSFRow row1 = sheet.createRow((int) 1); HSSFRow row2 = sheet.createRow((int) 2); HSSFCellStyle style = wb.createCellStyle(); // 设置居中样式 style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中 style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中 style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); // // 设置列宽度(像素) // for (int i = 0; i < excelHeaderWidth.length; i++) { // sheet.setColumnWidth(i, 32 * excelHeaderWidth[i]); // } //int firstRow, int lastRow, int firstCol, int lastCol sheet.addMergedRegion(new CellRangeAddress(0,2,0,0)); sheet.addMergedRegion(new CellRangeAddress(0,0,1,4)); sheet.addMergedRegion(new CellRangeAddress(0,0,5,8)); sheet.addMergedRegion(new CellRangeAddress(1,1,1,2)); sheet.addMergedRegion(new CellRangeAddress(1,1,3,4)); sheet.addMergedRegion(new CellRangeAddress(1,1,5,6)); sheet.addMergedRegion(new CellRangeAddress(1,1,7,8)); sheet.addMergedRegion(new CellRangeAddress(2,2,1,1)); sheet.addMergedRegion(new CellRangeAddress(2,2,2,2)); sheet.addMergedRegion(new CellRangeAddress(2,2,3,3)); sheet.addMergedRegion(new CellRangeAddress(2,2,4,4)); sheet.addMergedRegion(new CellRangeAddress(2,2,5,5)); sheet.addMergedRegion(new CellRangeAddress(2,2,6,6)); sheet.addMergedRegion(new CellRangeAddress(2,2,7,7)); sheet.addMergedRegion(new CellRangeAddress(2,2,8,8)); for (int i = 0; i < excelHeader.length; i++) { HSSFCell cell = row.createCell(i); cell.setCellValue(excelHeader[i]); cell.setCellStyle(style); sheet.autoSizeColumn(i); } for (int i = 0; i < excelHeader2.length; i++) { HSSFCell cell = row1.createCell(i); cell.setCellValue(excelHeader2[i]); cell.setCellStyle(style); sheet.autoSizeColumn(i); } for (int i = 0; i < excelHeader3.length; i++) { HSSFCell cell = row2.createCell(i); cell.setCellValue(excelHeader3[i]); cell.setCellStyle(style); sheet.autoSizeColumn(i); } for(int i=0;i<listAre.size();i++){ Object[] arr1 = (Object[]) listAre.get(i); for(int j=0;j<tblistAre.size();j++){ Object[] arr2 = (Object[]) tblistAre.get(j); if(arr1[0].equals(arr2[0])){ row = sheet.createRow(i + 3); HSSFCell cell0 = row.createCell(0); HSSFCell cell1 = row.createCell(1); HSSFCell cell2 = row.createCell(2); HSSFCell cell3 = row.createCell(3); HSSFCell cell4 = row.createCell(4); HSSFCell cell5 = row.createCell(5); HSSFCell cell6 = row.createCell(6); HSSFCell cell7 = row.createCell(7); HSSFCell cell8 = row.createCell(8); cell0.setCellValue(arr1[0].toString()); cell0.setCellStyle(style); cell1.setCellValue(arr1[1].toString()); cell1.setCellStyle(style); cell2.setCellValue(String.format("%.1f", Double.valueOf(arr1[1].toString())*100/Double.valueOf(arr2[1].toString()))); cell2.setCellStyle(style); cell3.setCellValue(arr1[4].toString()); cell3.setCellStyle(style); cell4.setCellValue(String.valueOf(Integer.valueOf(arr2[4].toString())-Integer.valueOf(arr1[4].toString()))); cell4.setCellStyle(style); cell5.setCellValue(String.format("%.1f", Double.valueOf(arr1[2].toString())*100)); cell5.setCellStyle(style); cell6.setCellValue(String.format("%.1f", Double.valueOf(arr1[2].toString())*100/Double.valueOf(arr2[2].toString()))); cell6.setCellStyle(style); cell7.setCellValue(arr1[3].toString()); cell7.setCellStyle(style); cell8.setCellValue(String.valueOf(Integer.valueOf(arr2[3].toString())-Integer.valueOf(arr1[3].toString()))); cell8.setCellStyle(style); } } } return wb; }
@RequestMapping("/exportThjcdw") public void exportThjcdw(HttpServletRequest request,HttpServletResponse response,String time1,String time2,String type){ try { List<?> listAre = null; List<?> tblistAre = null; if("2".equals(type)){ //上周的所有数据值 String[] strarr1 = time1.split("-"); String[] strarr2 = time2.split("-"); listAre = this.hjkqzlbo.getAreList(strarr1[0],strarr1[1],type); //上上周所有数据 tblistAre = this.hjkqzlbo.getAreList(strarr2[0],strarr2[1],type); HSSFWorkbook wb = doexportZycrhhldmsz(listAre,tblistAre); response.setContentType("application/vnd.ms-excel"); long title = new Date().getTime(); response.setHeader("Content-disposition", "attachment;filename="+title+".xls"); OutputStream ouputStream = response.getOutputStream(); wb.write(ouputStream); ouputStream.flush(); ouputStream.close(); } } catch (Exception e) { log.error(LogUtil.getStackTrace(e)); } }