fix: 精简模式下抽取 excel(.xls) 数据集

This commit is contained in:
taojinlong 2022-05-04 17:07:00 +08:00
parent 40a0e196e4
commit 94b31d6c25
2 changed files with 17 additions and 4 deletions

View File

@ -344,7 +344,9 @@ public class ExcelXlsReader implements HSSFListener {
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);
}
if(obtainedNum == null){
totalSheets.stream().filter(s->s.getExcelLable().equalsIgnoreCase(sheetName)).collect(Collectors.toList()).get(0).getData().add(tmp);
}
totalRows++;
}
}

View File

@ -704,10 +704,21 @@ public class ExtractDataService {
List<String[]> data = new ArrayList<>();
DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class);
List<ExcelSheetData> excelSheetDataList = dataTableInfoDTO.getExcelSheetDataList();
ExcelXlsxReader excelXlsxReader = new ExcelXlsxReader();
for (ExcelSheetData excelSheetData : excelSheetDataList) {
excelXlsxReader.process(new FileInputStream(excelSheetData.getPath()));
for (ExcelSheetData sheet : excelXlsxReader.totalSheets) {
String suffix = excelSheetData.getPath().substring(excelSheetData.getPath().lastIndexOf(".") + 1);
List<ExcelSheetData> totalSheets = new ArrayList<>();
if (StringUtils.equalsIgnoreCase(suffix, "xls")) {
ExcelXlsReader excelXlsReader = new ExcelXlsReader();
excelXlsReader.process(new FileInputStream(excelSheetData.getPath()));
totalSheets = excelXlsReader.totalSheets;
}
if (StringUtils.equalsIgnoreCase(suffix, "xlsx")) {
ExcelXlsxReader excelXlsxReader = new ExcelXlsxReader();
excelXlsxReader.process(new FileInputStream(excelSheetData.getPath()));
totalSheets = excelXlsxReader.totalSheets;
}
for (ExcelSheetData sheet : totalSheets) {
if (sheet.getExcelLable().equalsIgnoreCase(excelSheetData.getExcelLable())) {
for (List<String> dataItem : sheet.getData()) {
if (dataItem.size() > 0) {