导出Excel文件模板

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

猜你喜欢

转载自www.cnblogs.com/jassy/p/10705540.html