From a1ad6942604c8ca3fc0c39d7ef737a04ec6da02c Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Mon, 25 Mar 2019 10:00:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=85=8D=E7=BD=AE=E5=AF=BC?= =?UTF-8?q?=E5=85=A5Excel=E6=96=87=E4=BB=B6=E5=AD=98=E5=9C=A8=E7=A9=BA?= =?UTF-8?q?=E8=A1=8C=E6=97=B6=EF=BC=8C=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=A1=8C=E5=8F=B7=E4=B8=8E=E6=96=87=E4=BB=B6=E8=A1=8C=E5=8F=B7?= =?UTF-8?q?=E5=AF=B9=E4=B8=8D=E4=B8=8Abug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nis/util/excel/ImportBigExcel.java | 8 ++++--- .../nis/util/excel/XLSXCovertCSVReader.java | 22 ++++++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/nis/util/excel/ImportBigExcel.java b/src/main/java/com/nis/util/excel/ImportBigExcel.java index fa4f8b70c..ecbde94c3 100644 --- a/src/main/java/com/nis/util/excel/ImportBigExcel.java +++ b/src/main/java/com/nis/util/excel/ImportBigExcel.java @@ -432,12 +432,14 @@ public class ImportBigExcel extends XLSXCovertCSVReader{ Map> dictMap = new HashMap>(); Object val1 = null; for (int i = 0, len = dataList.size(); i < len; i++) { - E e = (E)cls.newInstance(); - if(i<=headerNum) { + List row=dataList.get(i); + //boolean flag = row.stream().allMatch(obj -> "".equals(obj)); + if(i <= headerNum || row.size() == 0) {// 跳过第一行和空行 continue; } + + E e = (E)cls.newInstance(); int column = 0; - List row=dataList.get(i); StringBuilder sb = new StringBuilder(); for (Object[] os : annotationList){ Object val=row.get(column); diff --git a/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java b/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java index f16e5770a..a0ba0c86b 100644 --- a/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java +++ b/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java @@ -112,7 +112,8 @@ public abstract class XLSXCovertCSVReader { // private String[] record; // private List rows = new ArrayList(); private boolean isCellNull = false; - + + private int upRowId; // 记录上一行行号 /** * Accepts objects needed while parsing. * @@ -203,8 +204,23 @@ public abstract class XLSXCovertCSVReader { if (this.formatString == null) this.formatString = BuiltinFormats .getBuiltinFormat(this.formatIndex); - } - } + } + + }else if("row".equals(name)) { + // 获取行号 + String r = attributes.getValue("r"); + int index = Integer.parseInt(r); + + int gap = index - upRowId; + if(gap > 1) { // 存在空行 + while(gap > 1) { + optRows(sheetIndex,lastColumnNumber,rowlist); + gap--; + } + + } + upRowId = index; + } lastContents = ""; }