From 94b31d6c25f30ef04ec4ab00f23d6c2da68e50d2 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 4 May 2022 17:07:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=B2=BE=E7=AE=80=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E4=B8=8B=E6=8A=BD=E5=8F=96=20excel(.xls)=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/commons/utils/ExcelXlsReader.java | 4 +++- .../service/dataset/ExtractDataService.java | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) 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) {