From b28a117eac39551b33fadc20acc1565e6ee66e16 Mon Sep 17 00:00:00 2001 From: "jipengfei.jpf" Date: Wed, 14 Nov 2018 11:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A1=A8=E5=A4=B4=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/analysis/ExcelAnalyserImpl.java | 5 ++-- .../excel/metadata/ExcelHeadProperty.java | 28 ++++++++++--------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/alibaba/excel/analysis/ExcelAnalyserImpl.java b/src/main/java/com/alibaba/excel/analysis/ExcelAnalyserImpl.java index 33e6053..b8dd376 100644 --- a/src/main/java/com/alibaba/excel/analysis/ExcelAnalyserImpl.java +++ b/src/main/java/com/alibaba/excel/analysis/ExcelAnalyserImpl.java @@ -28,7 +28,6 @@ public class ExcelAnalyserImpl implements ExcelAnalyser { eventListener, trim); } - private BaseSaxAnalyser getSaxAnalyser() { if (saxAnalyser != null) { return this.saxAnalyser; @@ -50,14 +49,14 @@ public class ExcelAnalyserImpl implements ExcelAnalyser { if (!analysisContext.getInputStream().markSupported()) { throw new ExcelAnalysisException( "Xls must be available markSupported,you can do like this new " - + "BufferedInputStream(new FileInputStream(\"/xxxx/xxx/77.xlsx\")) "); + + "BufferedInputStream(new FileInputStream(\"/xxxx\")) "); } this.saxAnalyser = new XlsSaxAnalyser(analysisContext); } } } catch (Exception e) { throw new ExcelAnalysisException("File type error,io must be available markSupported,you can do like " - + "this new BufferedInputStream(new FileInputStream(\\\"/xxxx/xxx/77.xlsx\\\")) \"", e); + + "this new BufferedInputStream(new FileInputStream(\\\"/xxxx\\\")) \"", e); } return this.saxAnalyser; } diff --git a/src/main/java/com/alibaba/excel/metadata/ExcelHeadProperty.java b/src/main/java/com/alibaba/excel/metadata/ExcelHeadProperty.java index 06ff070..95ff9fd 100644 --- a/src/main/java/com/alibaba/excel/metadata/ExcelHeadProperty.java +++ b/src/main/java/com/alibaba/excel/metadata/ExcelHeadProperty.java @@ -46,11 +46,12 @@ public class ExcelHeadProperty { if (this.headClazz != null) { List fieldList = new ArrayList(); Class tempClass = this.headClazz; - //当父类为null的时候说明到达了最上层的父类(Object类). + //When the parent class is null, it indicates that the parent class (Object class) has reached the top + // level. while (tempClass != null) { - fieldList.addAll(Arrays.asList(tempClass .getDeclaredFields())); + fieldList.addAll(Arrays.asList(tempClass.getDeclaredFields())); + //Get the parent class and give it to yourself tempClass = tempClass.getSuperclass(); - //得到父类,然后赋给自己 } List> headList = new ArrayList>(); for (Field f : fieldList) { @@ -187,19 +188,20 @@ public class ExcelHeadProperty { * @return the last consecutive string position */ private int getLastRangNum(int j, String value, List values) { - int lastRow = -1; - if (StringUtils.isEmpty(value)) { + if (value == null) { return -1; } - for (int i = 0; i < values.size(); i++) { + if (j > 0) { + String preValue = values.get(j - 1); + if (value.equals(preValue)) { + return -1; + } + } + int last = j; + for (int i = last + 1; i < values.size(); i++) { String current = values.get(i); if (value.equals(current)) { - if (i >= j) { - lastRow = i; - } else { - //if ij && !value.equals(current) Indicates that the continuous range is exceeded if (i > j) { @@ -207,7 +209,7 @@ public class ExcelHeadProperty { } } } - return lastRow; + return last; }