完整easyPoi 自定义模板导出(多sheet)包含前后步骤

引入依赖:

         <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-base</artifactId>
                <version>3.2.0</version>
        </dependency>
        <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-web</artifactId>
                <version>3.2.0</version>
        </dependency>
        <dependency>
               <groupId>cn.afterturn</groupId>
               <artifactId>easypoi-annotation</artifactId>
               <version>3.2.0</version>
        </dependency>

一:导出方法

/*********导出部分*********/
    public static void exportExcel(String realPath, Map<String, Object> map, String fileName, HttpServletResponse response) throws IOException {
        //sheet封装
        Map<String, Object> sheetMap = new HashMap<String, Object>();
        sheetMap.put("list", map.get("list"));
        sheetMap.put("projects", map.get("projects"));

        TemplateExportParams params = new TemplateExportParams(realPath,true);
        // 设置sheetName,若不设置该参数,则使用得原本得sheet名称
//        String[] sheetNameArray = {"执法分析","整体趋势"} ;
//        params.setSheetName(sheetNameArray);
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
        downLoadExcel(fileName, response, workbook);
    }

    private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook)  {
        try {
            response.reset();
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName+".xlsx", "UTF-8"));
            ServletOutputStream outStream = null;
            try {
                outStream = response.getOutputStream();
                workbook.write(outStream);
            } finally {
                outStream.close();
            }
        } catch (IOException e) {
            throw new BadRequestException( e.getMessage());
        }
    }

二:接口

  @GetMapping("/exportExcel")
    public void exportExcel(HttpServletResponse response) {
        try {
//            TemplateExportParams templatePath = new TemplateExportParams("D:/WorkSpace/模板.xls");
            Map<String, Object> map = new HashMap<>();
            map.put("index", "序号");
            map.put("year", "年度");
            List<one> list = dataOneService.list();
            List<Project> projects = ProjectService.list();
            map.put("list", list);
            map.put("projects", projects);

            //sheet封装
            ExcelUtils.exportExcel("D:/WorkSpace/模板.xls", map, "新导出文件.xlsx", response);
        } catch (Exception ex) {
            throw  new BadRequestException(ex.getMessage());
        }
    }

时间格式:

 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QiqLarOV-1594782993823)(C:\Users\AirOrangeWorkSpace\Desktop\修改后.PNG)]


 

前端:

js:

/**
 * 导出excel
 * @returns data
 */
export function expExcel() {
  return request({
    url: '/api/one/exportExcel',
    method: 'get',
    responseType: 'blob'
  })
}

method:

 expExcel(){
      expExcel().then((res) =>{

      const downUrl = window.URL.createObjectURL(new Blob([res]));
      const a = window.document.createElement('a');
      a.href = downUrl;
      a.download = `文件.xlsx`;
      a.click();
      window.URL.revokeObjectURL(downUrl);


      })
    }

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值