From 3f1d5a1c8ef77d68bde52096bcd47f57c461ce18 Mon Sep 17 00:00:00 2001 From: jueyue Date: Sun, 8 Apr 2018 11:44:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96rownum=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../easypoi/excel/entity/ImportParams.java | 2 +- .../excel/imports/ExcelImportService.java | 8 ++++++- .../handler/inter/IExcelDataModel.java | 21 +++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelDataModel.java diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ImportParams.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ImportParams.java index 4c8e675..a1dff24 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ImportParams.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ImportParams.java @@ -44,7 +44,7 @@ public class ImportParams extends ExcelBaseParams { * 大家不理解,去掉这个 */ - private Integer keyIndex = 0; + private Integer keyIndex = null; /** * 开始读取的sheet位置,默认为0 */ diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java index ba26d9f..e6433ac 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java @@ -13,6 +13,7 @@ */ package cn.afterturn.easypoi.excel.imports; +import cn.afterturn.easypoi.handler.inter.IExcelDataModel; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.poi.hssf.usermodel.HSSFSheet; @@ -106,6 +107,9 @@ public class ExcelImportService extends ImportBaseService { Collection collection = (Collection) PoiReflectorUtil.fromCache(object.getClass()) .getValue(object, param.getName()); Object entity = PoiPublicUtil.createObject(param.getType(), targetId); + if(entity instanceof IExcelDataModel) { + ((IExcelDataModel)entity).setRowNum(row.getRowNum()); + } String picId; boolean isUsed = false;// 是否需要加上这个对象 for (int i = row.getFirstCellNum(); i < titlemap.size(); i++) { @@ -223,7 +227,9 @@ public class ExcelImportService extends ImportBaseService { //for (int i = row.getFirstCellNum(), le = titlemap.size(); i < le; i++) { //} - + if(object instanceof IExcelDataModel) { + ((IExcelDataModel)object).setRowNum(row.getRowNum()); + } for (ExcelCollectionParams param : excelCollection) { addListContinue(object, param, row, titlemap, targetId, pictures, params); } diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelDataModel.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelDataModel.java new file mode 100644 index 0000000..2731ad5 --- /dev/null +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelDataModel.java @@ -0,0 +1,21 @@ +package cn.afterturn.easypoi.handler.inter; + +/** + * Excel 本身数据文件 + * @author by jueyue on 18-4-8. + */ +public interface IExcelDataModel { + + /** + * 获取行号 + * @return + */ + public int getRowNum(); + + /** + * 设置行号 + * @param rowNum + */ + public void setRowNum(int rowNum); + +}