diff --git a/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java b/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java index 44fba1de45..841ff36e8b 100644 --- a/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java @@ -16,6 +16,8 @@ public class PanelViewDetailsRequest { private String[] header; + private Integer[] excelTypes; + private List details; private String snapshot; @@ -25,4 +27,5 @@ public class PanelViewDetailsRequest { private int snapshotHeight; + } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index 91ceb1f0fa..4f5832dddf 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -8,7 +8,6 @@ import io.dataease.controller.request.authModel.VAuthModelRequest; import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.controller.request.panel.PanelGroupBaseInfoRequest; import io.dataease.controller.request.panel.PanelGroupRequest; -import io.dataease.controller.request.panel.PanelTemplateRequest; import io.dataease.controller.request.panel.PanelViewDetailsRequest; import io.dataease.dto.PanelGroupExtendDataDTO; import io.dataease.dto.SysLogDTO; @@ -24,6 +23,7 @@ import io.dataease.i18n.Translator; import io.dataease.listener.util.CacheUtils; import io.dataease.plugins.common.base.domain.*; import io.dataease.plugins.common.base.mapper.*; +import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.service.chart.ChartViewService; import io.dataease.service.dataset.DataSetTableService; import io.dataease.service.staticResource.StaticResourceService; @@ -549,6 +549,7 @@ public class PanelGroupService { try { String snapshot = request.getSnapshot(); List details = request.getDetails(); + Integer[] excelTypes = request.getExcelTypes(); details.add(0, request.getHeader()); HSSFWorkbook wb = new HSSFWorkbook(); //明细sheet @@ -575,11 +576,22 @@ public class PanelGroupService { if (rowData != null) { for (int j = 0; j < rowData.length; j++) { HSSFCell cell = row.createCell(j); - cell.setCellValue(rowData[j]); if (i == 0) {// 头部 + cell.setCellValue(rowData[j]); cell.setCellStyle(cellStyle); //设置列的宽度 detailsSheet.setColumnWidth(j, 255 * 20); + }else{ + // with DataType + if((excelTypes[j]== DeTypeConstants.DE_INT || excelTypes[j]== DeTypeConstants.DE_FLOAT)&& StringUtils.isNotEmpty(rowData[j])){ + try{ + cell.setCellValue(Double.valueOf(rowData[j])); + }catch (Exception e){ + LogUtil.warn("export excel data transform error"); + } + }else{ + cell.setCellValue(rowData[j]); + } } } } diff --git a/frontend/src/components/canvas/custom-component/UserViewDialog.vue b/frontend/src/components/canvas/custom-component/UserViewDialog.vue index 1f7b522301..5905c74d75 100644 --- a/frontend/src/components/canvas/custom-component/UserViewDialog.vue +++ b/frontend/src/components/canvas/custom-component/UserViewDialog.vue @@ -182,6 +182,7 @@ export default { }, exportExcelDownload(snapshot, width, height) { const excelHeader = JSON.parse(JSON.stringify(this.chart.data.fields)).map(item => item.name) + const excelTypes = JSON.parse(JSON.stringify(this.chart.data.fields)).map(item => item.deType) const excelHeaderKeys = JSON.parse(JSON.stringify(this.chart.data.fields)).map(item => item.dataeaseName) const excelData = JSON.parse(JSON.stringify(this.chart.data.tableRow)).map(item => excelHeaderKeys.map(i => item[i])) const excelName = this.chart.name @@ -189,6 +190,7 @@ export default { viewName: excelName, header: excelHeader, details: excelData, + excelTypes: excelTypes, snapshot: snapshot, snapshotWidth: width, snapshotHeight: height