From c43bd12ca34a0a5051a1c1642bd2d7d9f6d42ed4 Mon Sep 17 00:00:00 2001 From: jueyue Date: Wed, 26 Dec 2018 15:37:30 +0800 Subject: [PATCH] =?UTF-8?q?4.0=20=E7=AC=AC=E4=B8=80=E7=89=88=E5=8F=91?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 +++---- easypoi-annotation/pom.xml | 2 +- easypoi-base/pom.xml | 2 +- .../afterturn/easypoi/csv/CsvImportUtil.java | 6 ++-- .../csv/handler/ICsvSaveDataHandler.java | 17 ---------- .../easypoi/csv/imports/CsvImportService.java | 11 ++++--- .../easypoi/excel/ExcelImportUtil.java | 33 ++----------------- .../excel/imports/sax/SaxReadExcel.java | 8 ++--- .../excel/imports/sax/parse/SaxRowRead.java | 6 ++-- ...lReadRowHandler.java => IReadHandler.java} | 8 ++++- easypoi-web/pom.xml | 2 +- pom.xml | 4 +-- 12 files changed, 38 insertions(+), 73 deletions(-) delete mode 100644 easypoi-base/src/main/java/cn/afterturn/easypoi/csv/handler/ICsvSaveDataHandler.java rename easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/{IExcelReadRowHandler.java => IReadHandler.java} (87%) diff --git a/README.md b/README.md index 239d033..b8ecd6e 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,14 @@ EasyPoi Excel和 Word简易工具类 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法 - 官网: http://www.afterturn.cn/ + 官网: http://opensource.afterturn.cn/ 邮箱: qrb.jueyue@foxmail.com QQ群: 1群 364192721(满) 2 群116844390 开发者:魔幻之翼 xf.key@163.com Spring Boot 支持 https://gitee.com/lemur/easypoi-spring-boot-starter -[官网](http://opensource.afterturn.cn) +[官网](https://opensource.afterturn.cn) [VIP技术服务-账号忘了,还是QQ吧](https://lemur.taobao.com) @@ -24,7 +24,7 @@ Spring Boot 支持 https://gitee.com/lemur/easypoi-spring-boot-starter **开发指南** -**[http://opensource.afterturn.cn/doc/easypoi.html](http://opensource.afterturn.cn/doc/easypoi.html)** +**[https://opensource.afterturn.cn/doc/easypoi.html](http://opensource.afterturn.cn/doc/easypoi.html)** [API文档](https://apidoc.gitee.com/lemur/easypoi/) @@ -100,17 +100,17 @@ https://oss.sonatype.org/content/groups/public/ cn.afterturn easypoi-base - 3.3.0 + 4.0.0 cn.afterturn easypoi-web - 3.3.0 + 4.0.0 cn.afterturn easypoi-annotation - 3.3.0 + 4.0.0 ``` diff --git a/easypoi-annotation/pom.xml b/easypoi-annotation/pom.xml index ac6512a..3295c21 100644 --- a/easypoi-annotation/pom.xml +++ b/easypoi-annotation/pom.xml @@ -4,7 +4,7 @@ cn.afterturn easypoi - 4.0.0-SNAPSHOT + 4.0.0 easypoi-annotation 基础注解类,解耦合 diff --git a/easypoi-base/pom.xml b/easypoi-base/pom.xml index 81b71f0..8983203 100644 --- a/easypoi-base/pom.xml +++ b/easypoi-base/pom.xml @@ -4,7 +4,7 @@ cn.afterturn easypoi - 4.0.0-SNAPSHOT + 4.0.0 easypoi-base diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java index 0c74161..80cebf7 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java @@ -1,8 +1,8 @@ package cn.afterturn.easypoi.csv; import cn.afterturn.easypoi.csv.entity.CsvImportParams; -import cn.afterturn.easypoi.csv.handler.ICsvSaveDataHandler; import cn.afterturn.easypoi.csv.imports.CsvImportService; +import cn.afterturn.easypoi.handler.inter.IReadHandler; import java.io.InputStream; import java.util.List; @@ -40,7 +40,7 @@ public final class CsvImportUtil { * @return */ public static void importCsv(InputStream inputstream, Class pojoClass, - CsvImportParams params, ICsvSaveDataHandler saveDataHandler) { - new CsvImportService().readExcel(inputstream, pojoClass, params, saveDataHandler); + CsvImportParams params, IReadHandler readHandler) { + new CsvImportService().readExcel(inputstream, pojoClass, params, readHandler); } } diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/handler/ICsvSaveDataHandler.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/handler/ICsvSaveDataHandler.java deleted file mode 100644 index 628b3db..0000000 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/handler/ICsvSaveDataHandler.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.afterturn.easypoi.csv.handler; - -/** - * 保存数据 - * 鉴于CSV可能都是大数据,还是调用接口直接保存,避免内存占用 - * - * @author by jueyue on 18-10-3. - */ -public interface ICsvSaveDataHandler { - - /** - * 保存数据 - * - * @param t - */ - public void save(T t); -} diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java index 5bf4d74..20f0c16 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java @@ -1,7 +1,6 @@ package cn.afterturn.easypoi.csv.imports; import cn.afterturn.easypoi.csv.entity.CsvImportParams; -import cn.afterturn.easypoi.csv.handler.ICsvSaveDataHandler; import cn.afterturn.easypoi.excel.annotation.ExcelTarget; import cn.afterturn.easypoi.excel.entity.params.ExcelCollectionParams; import cn.afterturn.easypoi.excel.entity.params.ExcelImportEntity; @@ -11,6 +10,7 @@ import cn.afterturn.easypoi.excel.imports.base.ImportBaseService; import cn.afterturn.easypoi.exception.excel.ExcelImportException; import cn.afterturn.easypoi.exception.excel.enums.ExcelImportEnum; import cn.afterturn.easypoi.handler.inter.IExcelModel; +import cn.afterturn.easypoi.handler.inter.IReadHandler; import cn.afterturn.easypoi.util.PoiPublicUtil; import cn.afterturn.easypoi.util.PoiReflectorUtil; import cn.afterturn.easypoi.util.PoiValidationUtil; @@ -41,7 +41,7 @@ public class CsvImportService extends ImportBaseService { this.cellValueServer = new CellValueService(); } - public List readExcel(InputStream inputstream, Class pojoClass, CsvImportParams params, ICsvSaveDataHandler saveDataHandler) { + public List readExcel(InputStream inputstream, Class pojoClass, CsvImportParams params, IReadHandler readHandler) { List collection = new ArrayList(); try { Map excelParams = new HashMap(); @@ -120,8 +120,8 @@ public class CsvImportService extends ImportBaseService { addListContinue(object, param, row, titlemap, targetId, params, errorMsg); } if (verifyingDataValidity(object, params, pojoClass, errorMsg)) { - if (saveDataHandler != null) { - saveDataHandler.save(object); + if (readHandler != null) { + readHandler.handler(object); } else { collection.add(object); } @@ -138,6 +138,9 @@ public class CsvImportService extends ImportBaseService { } readRow++; } + if (readHandler != null) { + readHandler.doAfterAll(); + } } catch (Exception e) { LOGGER.error(e.getMessage(), e); } diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/ExcelImportUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/ExcelImportUtil.java index aee8ea3..f82d19d 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/ExcelImportUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/ExcelImportUtil.java @@ -20,6 +20,7 @@ import java.io.FileInputStream; import java.io.InputStream; import java.util.List; +import cn.afterturn.easypoi.handler.inter.IReadHandler; import org.apache.poi.util.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,9 +29,7 @@ import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.afterturn.easypoi.excel.imports.ExcelImportService; import cn.afterturn.easypoi.excel.imports.sax.SaxReadExcel; -import cn.afterturn.easypoi.excel.imports.sax.parse.ISaxRowRead; import cn.afterturn.easypoi.exception.excel.ExcelImportException; -import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler; /** * Excel 导入工具 @@ -124,20 +123,6 @@ public class ExcelImportUtil { } } - /** - * Excel 通过SAX解析方法,适合大数据导入,不支持图片 - * 导入 数据源IO流,不返回校验结果 导入 字段类型 Integer,Long,Double,Date,String,Boolean - * - * @param inputstream - * @param pojoClass - * @param params - * @return - */ - public static List importExcelBySax(InputStream inputstream, Class pojoClass, - ImportParams params) { - return new SaxReadExcel().readExcel(inputstream, pojoClass, params, null, null); - } - /** * Excel 通过SAX解析方法,适合大数据导入,不支持图片 * 导入 数据源本地文件,不返回校验结果 导入 字 段类型 Integer,Long,Double,Date,String,Boolean @@ -149,20 +134,8 @@ public class ExcelImportUtil { */ @SuppressWarnings("rawtypes") public static void importExcelBySax(InputStream inputstream, Class pojoClass, - ImportParams params, IExcelReadRowHandler hanlder) { - new SaxReadExcel().readExcel(inputstream, pojoClass, params, null, hanlder); - } - - /** - * Excel 通过SAX解析方法,适合大数据导入,不支持图片 - * 导入 数据源IO流,不返回校验结果 导入 字段类型 Integer,Long,Double,Date,String,Boolean - * - * @param inputstream - * @param rowRead - * @return - */ - public static List importExcelBySax(InputStream inputstream, ISaxRowRead rowRead) { - return new SaxReadExcel().readExcel(inputstream, null, null, rowRead, null); + ImportParams params, IReadHandler hanlder) { + new SaxReadExcel().readExcel(inputstream, pojoClass, params, hanlder); } } diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/SaxReadExcel.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/SaxReadExcel.java index efa5655..bd4676f 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/SaxReadExcel.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/SaxReadExcel.java @@ -19,6 +19,7 @@ import java.io.InputStream; import java.util.Iterator; import java.util.List; +import cn.afterturn.easypoi.handler.inter.IReadHandler; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.xssf.eventusermodel.XSSFReader; import org.apache.poi.xssf.model.SharedStringsTable; @@ -34,7 +35,6 @@ import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.imports.sax.parse.ISaxRowRead; import cn.afterturn.easypoi.excel.imports.sax.parse.SaxRowRead; import cn.afterturn.easypoi.exception.excel.ExcelImportException; -import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler; /** * 基于SAX Excel大数据读取,读取Excel 07版本,不支持图片读取 @@ -48,10 +48,10 @@ public class SaxReadExcel { private static final Logger LOGGER = LoggerFactory.getLogger(SaxReadExcel.class); public List readExcel(InputStream inputstream, Class pojoClass, ImportParams params, - ISaxRowRead rowRead, IExcelReadRowHandler hanlder) { + IReadHandler hanlder) { try { OPCPackage opcPackage = OPCPackage.open(inputstream); - return readExcel(opcPackage, pojoClass, params, rowRead, hanlder); + return readExcel(opcPackage, pojoClass, params, null, hanlder); } catch (Exception e) { LOGGER.error(e.getMessage(), e); throw new ExcelImportException(e.getMessage()); @@ -59,7 +59,7 @@ public class SaxReadExcel { } private List readExcel(OPCPackage opcPackage, Class pojoClass, ImportParams params, - ISaxRowRead rowRead, IExcelReadRowHandler hanlder) { + ISaxRowRead rowRead, IReadHandler hanlder) { try { XSSFReader xssfReader = new XSSFReader(opcPackage); SharedStringsTable sst = xssfReader.getSharedStringsTable(); diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/parse/SaxRowRead.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/parse/SaxRowRead.java index 893d883..ff169b0 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/parse/SaxRowRead.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/parse/SaxRowRead.java @@ -22,6 +22,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import cn.afterturn.easypoi.handler.inter.IReadHandler; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,7 +37,6 @@ import cn.afterturn.easypoi.excel.entity.sax.SaxReadCellEntity; import cn.afterturn.easypoi.excel.imports.CellValueService; import cn.afterturn.easypoi.excel.imports.base.ImportBaseService; import cn.afterturn.easypoi.exception.excel.ExcelImportException; -import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler; import cn.afterturn.easypoi.util.PoiPublicUtil; import cn.afterturn.easypoi.util.PoiReflectorUtil; @@ -69,9 +69,9 @@ public class SaxRowRead extends ImportBaseService implements ISaxRowRead { private CellValueService cellValueServer; - private IExcelReadRowHandler hanlder; + private IReadHandler hanlder; - public SaxRowRead(Class pojoClass, ImportParams params, IExcelReadRowHandler hanlder) { + public SaxRowRead(Class pojoClass, ImportParams params, IReadHandler hanlder) { list = Lists.newArrayList(); this.params = params; this.pojoClass = pojoClass; diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelReadRowHandler.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IReadHandler.java similarity index 87% rename from easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelReadRowHandler.java rename to easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IReadHandler.java index b531dbd..57d0e6d 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelReadRowHandler.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IReadHandler.java @@ -21,11 +21,17 @@ package cn.afterturn.easypoi.handler.inter; * 2015年1月16日 下午8:06:26 * @param */ -public interface IExcelReadRowHandler { +public interface IReadHandler { /** * 处理解析对象 * @param t */ public void handler(T t); + + /** + * 处理完成之后的业务 + */ + public void doAfterAll(); + } diff --git a/easypoi-web/pom.xml b/easypoi-web/pom.xml index dacaf4d..c8cf7a2 100644 --- a/easypoi-web/pom.xml +++ b/easypoi-web/pom.xml @@ -4,7 +4,7 @@ cn.afterturn easypoi - 4.0.0-SNAPSHOT + 4.0.0 easypoi-web diff --git a/pom.xml b/pom.xml index 17627a6..4c3d921 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 cn.afterturn easypoi - 4.0.0-SNAPSHOT + 4.0.0 pom easypoi @@ -45,7 +45,7 @@ - 4.0.0-SNAPSHOT + 4.0.0 4.0.0 2.9.1 16.0.1