From 3d027b0fbef7435efdc03246f89677f04c3f1b1c Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 22 Apr 2024 18:21:54 +0800 Subject: [PATCH] =?UTF-8?q?refactor(X-Pack):=20=E5=AE=9A=E6=97=B6=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E5=AF=BC=E5=87=BA=E7=9A=84excel=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E6=95=B0=E5=80=BC=E7=B1=BB=E5=9E=8B=20#8999?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/commons/model/excel/ExcelSheetModel.java | 2 ++ .../main/java/io/dataease/commons/utils/ExcelUtils.java | 9 ++++++++- .../java/io/dataease/service/chart/ViewExportExcel.java | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/backend/src/main/java/io/dataease/commons/model/excel/ExcelSheetModel.java b/core/backend/src/main/java/io/dataease/commons/model/excel/ExcelSheetModel.java index 22757b83e4..d9e399fed5 100644 --- a/core/backend/src/main/java/io/dataease/commons/model/excel/ExcelSheetModel.java +++ b/core/backend/src/main/java/io/dataease/commons/model/excel/ExcelSheetModel.java @@ -13,4 +13,6 @@ public class ExcelSheetModel { private List> data; + private List filedTypes; + } diff --git a/core/backend/src/main/java/io/dataease/commons/utils/ExcelUtils.java b/core/backend/src/main/java/io/dataease/commons/utils/ExcelUtils.java index 7e29baa017..dadd251f4e 100644 --- a/core/backend/src/main/java/io/dataease/commons/utils/ExcelUtils.java +++ b/core/backend/src/main/java/io/dataease/commons/utils/ExcelUtils.java @@ -1,6 +1,7 @@ package io.dataease.commons.utils; import io.dataease.commons.model.excel.ExcelSheetModel; +import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.util.FileUtil; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -27,6 +28,7 @@ public class ExcelUtils { sheets.forEach(sheet -> { List> details = sheet.getData(); + List fieldTypes = sheet.getFiledTypes(); details.add(0, sheet.getHeads()); String sheetName = sheet.getSheetName(); Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"<>\\|]"); @@ -53,7 +55,12 @@ public class ExcelUtils { if (rowData != null) { for (int j = 0; j < rowData.size(); j++) { Cell cell = row.createCell(j); - cell.setCellValue(rowData.get(j)); + // with DataType + if (i > 0 && (fieldTypes.get(j).equals(DeTypeConstants.DE_INT) || fieldTypes.get(j).equals(DeTypeConstants.DE_FLOAT)) && StringUtils.isNotEmpty(rowData.get(j))) { + cell.setCellValue(Double.valueOf(rowData.get(j))); + } else { + cell.setCellValue(rowData.get(j)); + } if (i == 0) {// 头部 cell.setCellStyle(cellStyle); // 设置列的宽度 diff --git a/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java b/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java index 2e767380b8..14d21b383d 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ViewExportExcel.java @@ -113,11 +113,13 @@ public class ViewExportExcel { List fields = gson.fromJson(gson.toJson(objectFields), fieldTokenType); List heads = new ArrayList<>(); List headKeys = new ArrayList<>(); + List fieldTypes = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fields)) { fields.forEach(field -> { if (ObjectUtils.isNotEmpty(field.getName()) && ObjectUtils.isNotEmpty(field.getDataeaseName())) { heads.add(field.getName()); headKeys.add(field.getDataeaseName()); + fieldTypes.add(field.getDeType()); } }); } @@ -132,6 +134,7 @@ public class ViewExportExcel { }).collect(Collectors.toList())).collect(Collectors.toList()); result.setHeads(heads); result.setData(details); + result.setFiledTypes(fieldTypes); result.setSheetName(title); return result;