fix: 精简模式添加 Excel数据集

This commit is contained in:
taojinlong 2022-04-21 13:41:58 +08:00
parent ccffc4f2d7
commit 64e9354dbe
3 changed files with 25 additions and 4 deletions

View File

@ -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<String> 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);
}

View File

@ -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<TableField> 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元素也包含字符串

View File

@ -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;
}