easypoi导入工具类
工具类
cn.afterturn
easypoi-base
4.0.0
代码
package diit.platform.bussiness.utils;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelimportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.importParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.result.ExcelimportResult;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
//Excel导入导出工具类
public class ExcelUtils {
public static void exportExcel(List> list, String title, String sheetName, Class> pojoClass, String fileName,
boolean isCreateHeader, HttpServletResponse response) {
ExportParams exportParams = new ExportParams(title, sheetName);
exportParams.setCreateHeadRows(isCreateHeader);
defaultExport(list, pojoClass, fileName, response, exportParams);
}
public static void exportExcel(List> list, String title, String sheetName, Class> pojoClass, String fileName,
HttpServletResponse response) {
defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
}
public static void exportExcel(List
实体
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MineralBatchExcel implements IExcelModel, IExcelDataModel {
@Excel(name = "分类编号",fixedIndex = 0)
@NotNull(message = "分类编号不能为空")
private String flbh;
@Excel(name = "矿产地编号",fixedIndex = 1)
@Pattern(regexp = "\d{6}",message = "编码是数字6位数")
private String kcdbh;
//......................
}
service
public Resut importExcel(MultipartFile file){
//titleRows 标题有几行,headerRows 头部有几行
ExcelimportResult result = ExcelUtils.importExcelAndCheck(file, 0, 5, MineralBatchExcel.class);
//查看是否有错误行
if(result.isVerfiyFail()){
String errorMsg = "";
//拼接整理错误信息,目前简单处理拼接成一批文字提示,后续可以不操作,直接返回前端做表格展示
for(MineralBatchExcel excel : result.getFailList()){
errorMsg += "第"+excel.getRowNum()+"行有错误," + excel.getErrorMsg() + ";
";
}
return Resut(ResponeCode.FAIL,errorMsg);
}
//需要保存的数据list
List saveList = result.getList();
}