diff --git a/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java b/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java index c516c977e4..8b96412235 100644 --- a/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java +++ b/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java @@ -25,6 +25,16 @@ public class ExcelXlsReader implements HSSFListener { private int minColums = -1; + public Integer getObtainedNum() { + return obtainedNum; + } + + public void setObtainedNum(Integer obtainedNum) { + this.obtainedNum = obtainedNum; + } + + private Integer obtainedNum = null; + private POIFSFileSystem fs; /** @@ -331,7 +341,7 @@ public class ExcelXlsReader implements HSSFListener { totalSheets.add(excelSheetData); }else { List tmp = new ArrayList<>(cellList); - if(totalSheets.stream().filter(s->s.getExcelLable().equalsIgnoreCase(sheetName)).collect(Collectors.toList()).get(0).getData().size() < 100){ + if(obtainedNum != null && totalSheets.stream().filter(s->s.getExcelLable().equalsIgnoreCase(sheetName)).collect(Collectors.toList()).get(0).getData().size() < obtainedNum){ totalSheets.stream().filter(s->s.getExcelLable().equalsIgnoreCase(sheetName)).collect(Collectors.toList()).get(0).getData().add(tmp); } diff --git a/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java b/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java index e33d1fee67..2dd264335c 100644 --- a/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java +++ b/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java @@ -121,6 +121,15 @@ public class ExcelXlsxReader extends DefaultHandler { */ private boolean isDateFormat = false; + public Integer getObtainedNum() { + return obtainedNum; + } + + public void setObtainedNum(Integer obtainedNum) { + this.obtainedNum = obtainedNum; + } + + private Integer obtainedNum = null; public List getFields() { return fields; @@ -181,7 +190,7 @@ public class ExcelXlsxReader extends DefaultHandler { */ @Override public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { - if(curRow>101){ + if(this.obtainedNum !=null && curRow>this.obtainedNum){ return; } @@ -219,7 +228,7 @@ public class ExcelXlsxReader extends DefaultHandler { */ @Override public void characters(char[] ch, int start, int length) throws SAXException { - if(curRow>101){ + if(this.obtainedNum !=null && curRow>this.obtainedNum){ return; } lastIndex += new String(ch, start, length); @@ -235,7 +244,7 @@ public class ExcelXlsxReader extends DefaultHandler { */ @Override public void endElement(String uri, String localName, String name) throws SAXException { - if(curRow>101){ + if(this.obtainedNum !=null && curRow>this.obtainedNum){ return; } //t元素也包含字符串 diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 97fe038802..d819248b01 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -1917,11 +1917,13 @@ public class DataSetTableService { String suffix = filename.substring(filename.lastIndexOf(".") + 1); if (StringUtils.equalsIgnoreCase(suffix, "xls")) { ExcelXlsReader excelXlsReader = new ExcelXlsReader(); + excelXlsReader.setObtainedNum(100); excelXlsReader.process(inputStream); excelSheetDataList = excelXlsReader.totalSheets; } if (StringUtils.equalsIgnoreCase(suffix, "xlsx")) { ExcelXlsxReader excelXlsxReader = new ExcelXlsxReader(); + excelXlsxReader.setObtainedNum(100); excelXlsxReader.process(inputStream); excelSheetDataList = excelXlsxReader.totalSheets; }