简介:
在SpringBoot项目中,上传Excel表,用EasyExcel进行解析,返回实体类,并生成压缩包下载到本地(压缩包里面的文件自己定义)。
遇到古老版本的Excel表无法使用EasyExcel(如Excel5.0\7.0 版本),则使用jxl解析(附送jar包)
引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.8</version>
</dependency>
前端页面
<div >
<form id="uploadForm" action="/接收文件API" enctype="multipart/form-data" method="post">
<input type="file" id="excelfile" name="excelfile" >
<button type="submit" style="width: auto;height: auto" >提交</button>
</form>
</div>
后端接口
@PostMapping("/excelToText")
public void excelToText(HttpServletResponse response, MultipartFile excelfile) throws Exception{
List<ExcelEntity> entities = null;
//判断文件后缀,虽然easyexcel也能读取xls,但是古老版本的不行,你也可以先判断excel版本再去使用相应的方法进行处理。
if (!excelfile.getOriginalFilename().endsWith(".xlsx")){
xlsExcelRead read = new xlsExcelRead();
entities =read.readXls(multipartFileToFile(excelfile));
}
else {
InputStream in = excelfile.getInputStream();
ExcelListener excelListener = new ExcelListener();
EasyExcel.read(in, ExcelEntity.class, excelListener).sheet().headRowNumber(3).doRead(); //从第4行开始读
entities = excelListener.getEntities();
}
//创建临时文件
File file1 = File.createTempFile("file1", "