最近笔者遇到一个新需求,就是将一批
数据进行导入
数据库,但是要将校验不通过的
数据生成一个
Excel文件,放到七牛云上面,将地址返回前端,让前端自行下载.
我相信一开始很多人都是直接生成
文件,然后使用response相应回去给前端的,因为我的做法是一个借口实现导入与将失败的
数据导出,所以使用response,前端就无法接收到Message进行提示导入成功多少条
数据,失败多少条
数据了,废话少说,先看看response响应回去是怎么操作的,上代码
* 默认的样式设置
在j项目开发中经常会有导出
文件excel的需求,对此
EasyExcel是个非常好用的工具,官方羽雀文档地址https://www.yuque.com/
easyexcel/doc/
easyexcel,这里简单总结一下使用该工具返回
文件流的操作。
1.引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>
easyexcel</artifactId>
ByteArrayOutputStream os = new ByteArrayOutputStream();
String fileName = "demo.xlsx";
ExcelWriter excelWriter = EasyExcel.write().file(os).withTemplate(templatePathName).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
FillConfig fillCon.
// 导入
EasyExcel库
import com.alibaba.
excel.
EasyExcel;
import com.alibaba.
excel.read.builder.
ExcelReaderBuilder;
// 定义
Excel数据模型类
public class
ExcelData {
private String name;
private int age;
// 其它属性...
// 定义getter和setter方法...
// 读取
Excel文件
public void read
Excel(String filePath) {
// 创建
ExcelReaderBuilder对象
ExcelReaderBuilder readerBuilder =
EasyExcel.read(filePath,
ExcelData.class, new
ExcelDataListener());
// 构建
ExcelReader对象
ExcelReader reader = readerBuilder.build();
// 开始读取
Excel文件
reader.readAll();
// 定义
Excel数据监听器类
public class
ExcelDataListener extends AnalysisEventListener<
ExcelData> {
// 重写父类方法,处理每行
数据
@Override
public void invoke(
ExcelData data, AnalysisContext context) {
// 处理
Excel数据...
// 重写父类方法,读取完成后执行
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 读取完成后的处理...
以上代码示例中,我们使用了
EasyExcel库来读取本地
Excel文件,并定义了
Excel数据模型类和
数据监听器类来处理
Excel数据。在实际使用时,我们只需要调用`read
Excel`方法并传入
Excel文件路径即可。