1、添加依赖:
<!-- 现在已经更新到1.1.2-beta5 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.1</version>
</dependency>
导入:
2、添加监听:
package com.aikucun.goods.biz.easyexcel; import com.aikucun.goods.dao.model.vo.SkuModel; import com.aikucun.goods.dao.model.vo.SkuUploadFailModel; import com.aikucun.sc.common.utils.BeanUtils; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import java.util.List; public class SkuUploadListener extends AnalysisEventListener { private List<SkuUploadFailModel> uploadFailList = Lists.newArrayList(); private List<SkuModel> skuModelList = Lists.newArrayList(); private int totalSize = 0; /** * 每解析一行,执行一次该方法 */ @Override public void invoke(Object object, AnalysisContext context) { totalSize++; SkuModel skuModel = (SkuModel) object; if (!checkData(skuModel)) { return; } skuModelList.add(skuModel); } @Override public void doAfterAllAnalysed(AnalysisContext context) { } private boolean checkData(SkuModel skuModel) { // 失败原因 String failMessage = ""; // itemCode String itemCode = skuModel.getItemCode(); if (null == skuModel) { failMessage = "数据为空"; } // 验证sku if (StringUtils.isEmpty(itemCode)) { failMessage = "itemCode为空!"; } else { if (skuModelList.contains(itemCode)) { failMessage = failMessage + "itemCode重复!"; } } //品牌名称 if (StringUtils.isEmpty(skuModel.getBrandName())) { failMessage = failMessage + "品牌名称为空!"; } //条码必填 if (StringUtils.isEmpty(skuModel.getBarCode())) { failMessage = failMessage + "条码为空!"; } if (StringUtils.isNotEmpty(failMessage)) { SkuUploadFailModel failModel = new SkuUploadFailModel(); //数量校验??? BeanUtils.convert(skuModel, failModel); failModel.setFailMessage(failMessage); uploadFailList.add(failModel); return false; } return true; } public List<SkuUploadFailModel> getUploadFailList(){ return uploadFailList; } public List<SkuModel> getSkuModelList(){ return skuModelList; } public int getTotalSize() { return totalSize; } }