easyExcel简单的介绍及应用:
easyExcel是阿里云旗下可以实现操作excel的写入和读取(也就是我们系统中的导入导出excel);
我现在说一个excel导出一个excel的多个sheet文件的代码实现;
easyExcel官方地址:https://easyexcel.opensource.alibaba.com/
easyExcel GitHub地址:https://github.com/alibaba/easyexcel
1、我使用java实现后端:
/**
* easyExcel模板类 MaterialInitExcel
*/
@Data
public class DemoData {
@ExcelProperty("字符串标题")
private String string;
@ExcelProperty("日期标题")
private Date date;
@ExcelProperty("数字标题")
private Double doubleData;
/**
* 忽略这个字段
*/
@ExcelIgnore
private String ignore;
}
后端写入excel的多个sheet的方法:
/**
* response: 响应
* params: 是你要传的参数, 业务自行处理
*/
public void downExcel(HttpServletResponse response, param... params){
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 定义excel文件名称
String fileName = "物料期初";
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
try {
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// 新建ExcelWriter 流形式,并且写入模板
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), DemoData.class).build();
for (int i = 0; i < 5; i++) {
// 获取sheet对象 param1:sheet页 param2:sheet的名称
WriteSheet writeSheet = EasyExcel.writerSheet(i, "sheet的名称").build();
// 这是要写进sheet也的数据 注意:数据要按照模板的数据进行写入
/**
* 业务数据自行处理 dataList 是写入的数据
*/
List<DemoData> dataList = new ArrayList<>();
excelWriter.write(dataList, writeSheet);
}
//关闭流
excelWriter.finish();
} catch (Exception e) {
e.printStackTrace();
}
}
2、前段通过get方式的请求
/**
* 前段点击事件通过以下方式可直接访问
* 注意:这种方式是 get 请求的方式
*/
window.open(`后端接口地址&参数`);
前段也可以前段通过接口返回的文件流进行下载