<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>复制代码
public class OrderExcelBO extends BaseRowModel {
@ExcelProperty(value = {
"订单ID"}, index = 0)
private String id;
/**
* 订单描述
*/
@ExcelProperty(value = {
"订单描述"}, index = 2)
private String description;
/**
* 订单对应产品id
*/
@ExcelProperty(value = {
"产品ID"}, index = 2)
private Integer productId;
/**
* 支付方式描述,如:apple pay
*/
@ExcelProperty(value = {
"支付方式"}, index = 3)
private String payMethod;
/**
* create_time
*/
@ExcelProperty(value = {
"时间"}, index = 4)
private String createTime;
/**
* update_time
*/
private String updateTime;
/**
* 产生订单的用户
*/
@ExcelProperty(value = {
"用户ID"}, index = 5)
private Integer userId;
/**
* 支付状态:0 未支付、1支付成功支付完成、-1支付失败
*/
@ExcelProperty(value = {
"支付状态"}, index = 6)
private String status;
/**
* 订单来源描述,如:ios 安卓
*/
@ExcelProperty(value = {
"手机型号"}, index = 7)
private String platform;
/**
* 订单流水
*/
@ExcelProperty(value = {
"订单流水号"}, index = 8)
private String flowNum;
/**
* 订单金额
*/
@ExcelProperty(value = {
"金额"}, index = 9)
private BigDecimal price;
// @ExcelProperty(value = {"收据字段"}, index = 10)
private String receipt;
@ExcelProperty(value = {
"APP来源"}, index = 10)
private String sources;
}
public class ExcelListener extends AnalysisEventListener {
/**
* 自定义用于暂时存储data。
* 可以通过实例获取该值
*/
private List<Object> datas = new ArrayList<>();
/**
* 通过 AnalysisContext 对象还可以获取当前 sheet,当前行等数据
*/
@Override
public void invoke(Object object, AnalysisContext context) {
//数据存储到list,供批量处理,或后续自己业务逻辑处理。
datas.add(object);
//根据业务自行 do something
doSomething();
/*
如数据过大,可以进行定量分批处理
if(datas.size()<=100){
datas.add(object);
}else {
doSomething();
datas = new ArrayList<Object>();
}
*/
}
/**
* 根据业务自行实现该方法
*/
private void doSomething() {
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
/*
datas.clear();
解析结束销毁不用的资源
*/
}
public List<Object> getDatas() {
return datas;
}
public void setDatas(List<Object> datas) {
this.datas = datas;
}
}