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

spring boot集成easyexcel解决jar包无法获取文件问题

程序员文章站 2022-07-13 14:19:54
...

1、pom文件添加如下依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.2.6</version>
</dependency>

 2、业务代码示例:

/**
     * 导出基站开站信息列表
     */
    @GetMapping("/exportList")
    public void exportList(HttpServletResponse response,OpeningEnb openingEnb) throws IOException {
        List<OpeningEnb> list = openingEnbService.selectOpeningEnbList(openingEnb);
        InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/opening.xlsx");
        String fileName = "基站开通信息表.xlsx";
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes(),"iso-8859-1"));
            EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);
    }

重点:this.getClass().getClassLoader().getResourceAsStream("opening/opening.xlsx");

 这个对应文件是resources/opening/opening.xlsx

EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);

3、业务示例代码-2:

/**
     * 下载基站开站信息
     */
    @GetMapping("/export")
    public void export(HttpServletResponse response,String enodebId) throws IOException {
        List<LinkedHashMap> list = openingEnbService.selectOpeningEnbAndCelById(enodebId);
        String vendor_name = list.get(0).get("vendor_name").toString();
        InputStream resourceAsStream = null;
        String fileName = "";
        switch (vendor_name){
            case "华为":
                 resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/huawei.xlsx");
                 fileName = "华为基站开通信息表.xlsx";
                break;
            case "中兴":
                resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/zhongxing.xlsx");
                fileName = "中兴基站开通信息表.xlsx";
                break;
            case "爱立信":
                resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/ailixin.xlsx");
                fileName = "爱立信基站开通信息表.xlsx";
                break;
        }
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes(),"iso-8859-1"));
            EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);

    }

如果没成功请仔细检查重点代码是否照写了:

InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/opening.xlsx");

EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);