欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

easypoi,多sheet导出,excel注解导出

程序员文章站 2022-05-17 09:18:57
...

1.controller

 public void exportSsTj(HttpServletResponse response, String zwyf) throws Exception {
         //查询结果一
         final List<SsqktjVO> vos = ssqktjService.querySsqkTj(zwyf);
         //查询结果二
         List<YctjVO> yvos= ssqktjService.queryYcTj(zwyf);
         //设置列表排除项,无需,则可不要
        List<String> exclusions = new ArrayList<String>();
        for (int i = 0; i < priceItems.size(); i++) {
            exclusions.add(priceItems.get(i).getItemname());
        }
         // 创建参数对象(用来设定excel得sheet得内容等信息)  
         ExportParams params1 = new ExportParams() ;  
         // 设置sheet1得名称  
         params1.setSheetName("表一"); ;  
         params1.setTitle("测试sheet表一");
         params1.setSecondTitle("月份:"+zwyf);
         params1.setExclusions(exclusions.toArray(new String[priceItems.size()]));
         // 创建sheet1使用得map  
         Map dataMap1 = new HashMap<>();  
         // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName  
         dataMap1.put("title",params1) ;  
         dataMap1.put(NormalExcelConstants.PARAMS, params1);
         // 模版导出对应得实体类型  
         dataMap1.put("entity",SsqktjVO.class) ;  
         // sheet中要填充得数据  
         dataMap1.put("data",list1) ;

        // 创建sheet2使用得map  
         ExportParams params2 = new ExportParams() ;  
         params2.setSheetName("表二") ;  
         params2.setTitle("测试sheet表2");
         params2.setSecondTitle("月份:"+zwyf);
         Map dataMap2 = new HashMap<>();  
         dataMap2.put("title",params2) ;  
         dataMap2.put("entity",YctjVO.class) ;  
         dataMap2.put("data",yvos);  

         // 将sheet1和sheet2使用得map进行包装  
         List sheetsList = new ArrayList<>() ;  
         sheetsList.add(dataMap1);  
         sheetsList.add(dataMap2);  

         Workbook workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF) ; 
         response.setContentType("applicationnd.ms-excel"); // 改成输出excel文件
         String fileName = java.net.URLEncoder.encode("实收情况统计表", "UTF-8");
         response.setHeader("Content-disposition",
                "attachment; filename=" + fileName + ".xls");// 03版本后缀xls,之后的xlsx
         OutputStream out = response.getOutputStream();
         workbook.write(out);
 }

2.model 实体类信息,(导出表头信息为实体类信息顺序)

//表一
    /**
     * 附加费
     */
    @Excel(name="附加费",width=20)
    private BigDecimal fjf = BigDecimal.ZERO;

    /**
     * 水资源税
     */
    @Excel(name="水资源税",width=20)
    private BigDecimal szys = BigDecimal.ZERO;


//表二
    /**
     * 月末金额
     */
    @Excel(name="月末金额",width=20)
    private BigDecimal qmycje= BigDecimal.ZERO;

    /**
     * 实收金额
     */
    @Excel(name="实收金额",width=20)
    private BigDecimal payje= BigDecimal.ZERO;

3.实例图片
easypoi,多sheet导出,excel注解导出

相关标签: java easypoi