/**
* 模板
* @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));
}
}