工具类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/** * 同步无模型读取(默认读取sheet0,从第2行开始读) * * @param filePath 文件路径 * @return List<Map < Integer, String>> */ public static List<Map<Integer, String>> syncRead(String filePath) { return EasyExcelFactory.read(filePath).sheet().doReadSync(); } /** * 同步无模型读取(默认表头占一行,从第2行开始读) * * @param filePath 文件路径 * @param sheetNo sheet页号,从0开始 * @return List<Map < Integer, String>> */ public static List<Map<Integer, String>> syncRead(String filePath, Integer sheetNo) { return EasyExcelFactory.read(filePath).sheet(sheetNo).doReadSync(); } /** * 同步无模型读取(指定sheet和表头占的行数) * * @param inputStream 输入流 * @param sheetNo sheet页号,从0开始 * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) * @return List<Map < colNum, cellValue>> */ public static List<Map<Integer, String>> syncRead(InputStream inputStream, Integer sheetNo, Integer headRowNum) { return EasyExcelFactory.read(inputStream).sheet(sheetNo).headRowNumber(headRowNum).doReadSync(); } /** * 同步无模型读取(指定sheet和表头占的行数) * * @param file 文件 * @param sheetNo sheet页号,从0开始 * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) * @return List<Map < colNum, cellValue>> */ public static List<Map<Integer, String>> syncRead(File file, Integer sheetNo, Integer headRowNum) { return EasyExcelFactory.read(file).sheet(sheetNo).headRowNumber(headRowNum).doReadSync(); } /** * 同步无模型读取(指定sheet和表头占的行数) * * @param filePath 文件路径 * @param sheetNo sheet页号,从0开始 * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) * @return List<Map < colNum, cellValue>> */ public static List<Map<Integer, String>> syncRead(String filePath, Integer sheetNo, Integer headRowNum) { return EasyExcelFactory.read(filePath).sheet(sheetNo).headRowNumber(headRowNum).doReadSync(); } /** * 同步按模型读取(默认读取sheet0,从第2行开始读) * * @param filePath 文件路径 * @param clazz 模型的类类型(excel数据会按该类型转换成对象) * @return List<T> */ public static List<T> syncReadModel(String filePath, Class<?> clazz) { return EasyExcelFactory.read(filePath).sheet().head(clazz).doReadSync(); } /** * 同步按模型读取(默认表头占一行,从第2行开始读) * * @param filePath 文件路径 * @param clazz 模型的类类型(excel数据会按该类型转换成对象) * @param sheetNo sheet页号,从0开始 * @return List<T> */ public static List<T> syncReadModel(String filePath, Class<?> clazz, Integer sheetNo) { return EasyExcelFactory.read(filePath).sheet(sheetNo).head(clazz).doReadSync(); } /** * 同步按模型读取(指定sheet和表头占的行数) * * @param inputStream 输入流 * @param clazz 模型的类类型(excel数据会按该类型转换成对象) * @param sheetNo sheet页号,从0开始 * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) * @return List<T> */ public static List<T> syncReadModel(InputStream inputStream, Class<?> clazz, Integer sheetNo, Integer headRowNum) { return EasyExcelFactory.read(inputStream).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync(); } /** * 同步按模型读取(指定sheet和表头占的行数) * * @param file 文件 * @param clazz 模型的类类型(excel数据会按该类型转换成对象) * @param sheetNo sheet页号,从0开始 * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) * @return List<T> */ public static List<T> syncReadModel(File file, Class<?> clazz, Integer sheetNo, Integer headRowNum) { return EasyExcelFactory.read(file).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync(); } /** * 同步按模型读取(指定sheet和表头占的行数) * * @param filePath 文件路径 * @param clazz 模型的类类型(excel数据会按该类型转换成对象) * @param sheetNo sheet页号,从0开始 * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) * @return List<T> */ public static List<T> syncReadModel(String filePath, Class<?> clazz, Integer sheetNo, Integer headRowNum) { return EasyExcelFactory.read(filePath).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync(); } /** * 异步按模型读取(默认表头占一行,从第2行开始读) */ /** * 异步按模型读取 * * @param file 文件 * @param excelListener 监听器,在监听器中可以处理行数据LinkedHashMap,表头数据,异常处理等 * @param clazz 模型的类类型(excel数据会按该类型转换成对象) * @param sheetNo sheet页号,从0开始 * @param headRowNum 表头占的行数,从0开始(如果要连表头一起读出来则传0) */ public static void asyncReadModel(File file, AnalysisEventListener<T> excelListener, Class<?> clazz, Integer sheetNo, Integer headRowNum) { EasyExcelFactory.read(file, clazz, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead(); } /** * 异步按模型读取 文件路径 */ /** * 异步按模型读取 输入流 * */ /** * 无模板写文件 文件路径 */ /** * 无模板写文件 指定sheet名称 */ /** * 根据excel模板文件写入文件 */ /** * 根据excel模板文件写入文件 * */ /** * 按模板写文件 */ /** * 按模板写文件 * */ /** * 按模板写文件(包含某些字段) */ /** * 按模板写文件(排除某些字段) */ /** * 多个sheet页的数据链式写入 */ /** * 多个sheet页的数据链式写入(失败了会返回一个有部分数据的Excel) */ /** * 同步按模型读,设置监听(指定sheet和表头占的行数) */View Code
具体使用
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public void upload(@RequestParam("file") MultipartFile file) throws Exception { File newFile = FileUtil.multipartFileToFile(file); //创建监听器 ExcelListener listener = new ExcelListener(BoxAndUnitDTO.class); //调用EasyExcelUtils EasyExcelUtils.asyncReadModel(newFile, listener, BoxAndUnitDTO.class, 0, 1); //获取解决出的错误信息 List<String> errorMessage = listener.getErrorMessage(); System.out.println("errorMessage = " + errorMessage); //获取监听器读到的数据 List<String> rows = listener.getRows(); for (Object o : rows) { System.out.println(o.toString()); } FileUtil.deleteTempFile(newFile); }View Code
标签:JAVA,读取,List,Excel,表头,sheetNo,param,headRowNum,sheet From: https://www.cnblogs.com/foredawn/p/17158608.html