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

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);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring BootEasyExcel可以很好地结合使用,来实现Excel文件的读写操作。下面是一个简单的示例代码,演示如何在Spring Boot项目中使用EasyExcel进行Excel文件的读写: 1. 首先,在pom.xml文件中添加EasyExcel的依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version> </dependency> ``` 2. 创建一个Excel读写的服务类,例如ExcelService: ```java import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.metadata.Sheet; import com.alibaba.excel.metadata.Table; import org.springframework.stereotype.Service; import java.util.List; @Service public class ExcelService { // 读取Excel文件 public List<User> readExcel(String filePath) { return EasyExcel.read(filePath).head(User.class).sheet().doReadSync(); } // 写入Excel文件 public void writeExcel(String filePath, List<User> userList) { ExcelWriter excelWriter = EasyExcel.write(filePath).build(); Sheet sheet = new Sheet(1, 0, User.class); excelWriter.write(userList, sheet); excelWriter.finish(); } } ``` 3. 创建一个User实体类,对应Excel中的每一行数据: ```java public class User { private String name; private Integer age; // Getters and setters... } ``` 4. 在控制器中注入ExcelService,并通过调用其方法来实现Excel的读写操作。 ```java @RestController public class ExcelController { @Autowired private ExcelService excelService; // 读取Excel文件 @GetMapping("/readExcel") public List<User> readExcel(@RequestParam String filePath) { return excelService.readExcel(filePath); } // 写入Excel文件 @PostMapping("/writeExcel") public void writeExcel(@RequestParam String filePath, @RequestBody List<User> userList) { excelService.writeExcel(filePath, userList); } } ``` 这样就可以通过访问"/readExcel"接口来读取Excel文件,通过访问"/writeExcel"接口来写入Excel文件。 以上是一个简单的示例,你可以根据实际需求进行相应的扩展和优化。希望对你有所帮助!如果有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值