SpringBoot本地下载Excel表可以,部署线上之后却是空白表

今天被这个问题困扰了一天,就是SpringBoot项目下载Excel表的时候,用本地的服务器下载是没问题的,但是部署到线上之后下载的确实空表。而控制台给出的报错原因是找不到该表。

百思不得其解,为啥呢????

明明线下本地都可以,肯定不是代码或者路径有问题啊,本地表也是有数据的,在百度上试了N多种原因之后,被其他人一提醒才想到,可能就是我配置文件有问题,线上根本找不到文件的路径,虽然Jenkins上面确实有该表,但下载的时候,根本找不到啊。

后来经人提醒,可能哪个配置文件有问题,线上找不到,或者换个方法再试一下

现在是我的解决方法:

 

这是我的文件位置,

 这个是我在配置文件配置的相对路径

这个是我调用的接口,最主要是下面这个,在dockerfile文件里面,把这个Excel表的路径复制到我的相对路径上,这样就能根据它找到Excel表了

COPY ./excel_templates/*  ./excel_templates/

实在不行,或许可以试一下用绝对路径! 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot项目中,可以使用Apache POI库来导出数据Excel。下面是一个简单的示例代码: ```java @GetMapping("/export-excel") public void exportExcel(HttpServletResponse response) throws IOException { // 创建工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作 Sheet sheet = workbook.createSheet("数据"); // 创建头 Row headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("姓名"); headerRow.createCell(1).setCellValue("年龄"); headerRow.createCell(2).setCellValue("性别"); // 填充数据 List<User> userList = userService.findAll(); for (int i = 0; i < userList.size(); i++) { User user = userList.get(i); Row row = sheet.createRow(i + 1); row.createCell(0).setCellValue(user.getName()); row.createCell(1).setCellValue(user.getAge()); row.createCell(2).setCellValue(user.getGender()); } // 设置响应头 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=data.xlsx"); // 写入响应流 workbook.write(response.getOutputStream()); // 关闭工作簿 workbook.close(); } ``` 在上面的示例中,`User`是一个简单的JavaBean,`userService.findAll()`返回所有用户的列。`Workbook`是工作簿,`Sheet`是工作,`Row`是行,`Cell`是单元格。通过`createRow()`和`createCell()`方法创建行和单元格,然后使用`setCellValue()`方法填充数据。最后,设置响应头和写入响应流即可导出Excel格。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值