提交 ab5b1be5 authored 作者: taojinlong's avatar taojinlong

fix: 精简模式Excel数据集在单元格中包含特殊符号或空值时会报错

上级 a3ff9c94
...@@ -310,6 +310,9 @@ public class ExcelXlsxReader extends DefaultHandler { ...@@ -310,6 +310,9 @@ public class ExcelXlsxReader extends DefaultHandler {
maxRef = ref; maxRef = ref;
} }
if(curRow>1){ if(curRow>1){
for (int i=cellList.size();i<this.fields.size();i++){
cellList.add("");
}
List<String> tmp = new ArrayList<>(cellList); List<String> tmp = new ArrayList<>(cellList);
this.getData().add(tmp); this.getData().add(tmp);
} }
......
...@@ -40,8 +40,12 @@ public class DDLProviderImpl extends DDLProvider { ...@@ -40,8 +40,12 @@ public class DDLProviderImpl extends DDLProvider {
Integer realSize = page * pageNumber < dataList.size() ? page * pageNumber : dataList.size(); Integer realSize = page * pageNumber < dataList.size() ? page * pageNumber : dataList.size();
for (String[] strings : dataList.subList((page - 1) * pageNumber, realSize)) { for (String[] strings : dataList.subList((page - 1) * pageNumber, realSize)) {
String[] strings1 = new String[strings.length];
for(int i=0; i< strings.length;i++){
strings1[i] = strings[i].replace("'","\\'");
}
values.append("('").append(UUID.randomUUID()) values.append("('").append(UUID.randomUUID())
.append("','" ).append(String.join("','", Arrays.asList(strings))) .append("','" ).append(String.join("','", Arrays.asList(strings1)))
.append("'),"); .append("'),");
} }
return insertSql + values.substring(0, values.length() - 1); return insertSql + values.substring(0, values.length() - 1);
......
...@@ -1930,8 +1930,7 @@ public class DataSetTableService { ...@@ -1930,8 +1930,7 @@ public class DataSetTableService {
inputStream.close(); inputStream.close();
excelSheetDataList.forEach(excelSheetData -> { excelSheetDataList.forEach(excelSheetData -> {
List<List<String>> data = excelSheetData.getData(); List<List<String>> data = excelSheetData.getData();
String[] fieldArray = excelSheetData.getFields().stream().map(TableField::getFieldName) String[] fieldArray = excelSheetData.getFields().stream().map(TableField::getFieldName).toArray(String[]::new);
.toArray(String[]::new);
List<Map<String, Object>> jsonArray = new ArrayList<>(); List<Map<String, Object>> jsonArray = new ArrayList<>();
if (CollectionUtils.isNotEmpty(data)) { if (CollectionUtils.isNotEmpty(data)) {
jsonArray = data.stream().map(ele -> { jsonArray = data.stream().map(ele -> {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论