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 8b96412235..07598fc3bc 100644 --- a/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java +++ b/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java @@ -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++; } } diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index 3147ccc71a..1034318397 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -704,10 +704,21 @@ public class ExtractDataService { List data = new ArrayList<>(); DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); List 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 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 dataItem : sheet.getData()) { if (dataItem.size() > 0) {