先上代码:
//通过订单进行查询
List<EngineeringTenderbidOrderEntity> orders = EngineeringTenderbidOrderEntity.findSuccessOrderbyProjectId(id);
if (!CollectionUtils.isEmpty(orders)) {
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("projectList.xlsx");
File tempFile = FileHelper.createTempFile(".xlsx");
ExcelWriter excelWriter = EasyExcel.write(tempFile).withTemplate(inputStream).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
try {
excelWriter.fill(orders, writeSheet);
Map<String, Object> map = new HashMap<String, Object>();
map.put("projectName", entity.getProjectName());
map.put("enterpriseNum", StrUtil.format("共[{}]家", orders.size()));
String beginTime = DateUtil.format(orders.get(0).getGmtCreate(), "yyyy.MM.dd HH:mm:ss");
String endTime = DateUtil.format(orders.get(orders.size()-1).getGmtCreate(), "yyyy.MM.dd HH:mm:ss");
map.put("applyTimeRange", beginTime + "-" + endTime);
excelWriter.fill(map, writeSheet);
//关闭流,将内存中的数据写入到excel中
excelWriter.finish();
ServletUtils.renderFile(request, response, tempFile, "项目清单导出.xlsx");
} finally {
FileHelper.deleteQuietly(tempFile);
}
}
原本我是将**excelWriter.finish()**这句话放在finally里面
但是项目打包部署到linux服务器上,点击下载出现文件损坏,在尝试了pom文件引入
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application-${environment}.yml</include>
<include>*.xlsx</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
和
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
之后仍然无效果,搞了好久啊,有点崩溃
注:以上两段代码可能仍需加上