From 9de3b8fc1a5d8458837daa7a58e2b2aacb8dd2b6 Mon Sep 17 00:00:00 2001 From: junjie Date: Wed, 9 Jun 2021 11:22:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(backend):excel=E4=B8=8A=E4=BC=A0=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E5=AE=B9=E9=94=99=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/DataSetTableService.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) 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 9a1e59333c..0a300867bd 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -719,10 +719,14 @@ public class DataSetTableService { } else { rows = sheet0.getPhysicalNumberOfRows(); } + int columnNum = 0; for (int i = 0; i < rows; i++) { HSSFRow row = sheet0.getRow(i); - String[] r = new String[row.getPhysicalNumberOfCells()]; - for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) { + if (i == 0) { + columnNum = row.getPhysicalNumberOfCells(); + } + String[] r = new String[columnNum]; + for (int j = 0; j < columnNum; j++) { if (i == 0) { TableFiled tableFiled = new TableFiled(); tableFiled.setFieldType("TEXT"); @@ -759,10 +763,14 @@ public class DataSetTableService { } else { rows = sheet0.getPhysicalNumberOfRows(); } + int columnNum = 0; for (int i = 0; i < rows; i++) { XSSFRow row = sheet0.getRow(i); - String[] r = new String[row.getPhysicalNumberOfCells()]; - for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) { + if (i == 0) { + columnNum = row.getPhysicalNumberOfCells(); + } + String[] r = new String[columnNum]; + for (int j = 0; j < columnNum; j++) { if (i == 0) { TableFiled tableFiled = new TableFiled(); tableFiled.setFieldType("TEXT"); @@ -828,6 +836,9 @@ public class DataSetTableService { } private String readCell(Cell cell, boolean cellType, TableFiled tableFiled) { + if (cell == null) { + return ""; + } CellType cellTypeEnum = cell.getCellTypeEnum(); if (cellTypeEnum.equals(CellType.STRING)) { if (cellType) {