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 0a300867bd..0b6bbbeb47 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -723,6 +723,9 @@ public class DataSetTableService { for (int i = 0; i < rows; i++) { HSSFRow row = sheet0.getRow(i); if (i == 0) { + if (row == null) { + throw new RuntimeException(Translator.get("i18n_excel_header_empty")); + } columnNum = row.getPhysicalNumberOfCells(); } String[] r = new String[columnNum]; @@ -739,8 +742,14 @@ public class DataSetTableService { tableFiled.setRemarks(columnName); fields.add(tableFiled); } else if (i == 1) { + if (row == null) { + break; + } r[j] = readCell(row.getCell(j), true, fields.get(j)); } else { + if (row == null) { + break; + } r[j] = readCell(row.getCell(j), false, null); } } @@ -767,6 +776,9 @@ public class DataSetTableService { for (int i = 0; i < rows; i++) { XSSFRow row = sheet0.getRow(i); if (i == 0) { + if (row == null) { + throw new RuntimeException(Translator.get("i18n_excel_header_empty")); + } columnNum = row.getPhysicalNumberOfCells(); } String[] r = new String[columnNum]; @@ -783,8 +795,14 @@ public class DataSetTableService { tableFiled.setRemarks(columnName); fields.add(tableFiled); } else if (i == 1) { + if (row == null) { + break; + } r[j] = readCell(row.getCell(j), true, fields.get(j)); } else { + if (row == null) { + break; + } r[j] = readCell(row.getCell(j), false, null); } } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index 852612d649..8c4794e183 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -252,4 +252,5 @@ i18n_id_or_pwd_error=Invalid ID or password i18n_datasource_delete=Data source is delete i18n_dataset_delete=Data set is delete i18n_chart_delete=Chart is delete -i18n_not_exec_add_sync=There is no completed synchronization task. Incremental synchronization cannot be performed \ No newline at end of file +i18n_not_exec_add_sync=There is no completed synchronization task. Incremental synchronization cannot be performed +i18n_excel_header_empty=Excel first row can not empty \ No newline at end of file diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 97f25e11db..a2f1de9195 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -253,3 +253,4 @@ i18n_datasource_delete=当前用到的数据源已被删除 i18n_dataset_delete=当前用到的数据集已被删除 i18n_chart_delete=当前用到的视图已被删除 i18n_not_exec_add_sync=没有已完成的同步任务,无法进行增量同步 +i18n_excel_header_empty=Excel第一行为空 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index a3b160e9c9..db733dd5e1 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -254,4 +254,5 @@ i18n_id_or_pwd_error=無效的ID或密碼 i18n_datasource_delete=當前用到的數據源已被刪除 i18n_dataset_delete=當前用到的數據集已被刪除 i18n_chart_delete=當前用到的視圖已被刪除 -i18n_not_exec_add_sync=沒有已經完成的同步任務,無法進行增量同步 \ No newline at end of file +i18n_not_exec_add_sync=沒有已經完成的同步任務,無法進行增量同步 +i18n_excel_header_empty=Excel第一行為空 \ No newline at end of file