From 7780be89fe9370fa2258e331cd9a8b36d7ba5581 Mon Sep 17 00:00:00 2001 From: nadirvishun Date: Tue, 5 Oct 2021 03:33:50 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=87=BAexcel?= =?UTF-8?q?=E6=97=B6=EF=BC=8CBigDecimal=E5=AD=97=E6=AE=B5=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=AF=BC=E5=87=BA=E6=95=B0=E5=AD=97=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=20=E7=9B=AE=E5=89=8D=E5=8F=AA=E8=83=BD=E5=AF=BC=E5=87=BAstring?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=8C=E5=AF=BC=E8=87=B4=E5=9C=A8excel?= =?UTF-8?q?=E4=B8=AD=E4=BC=9A=E6=9C=89=E4=B8=AA=E9=BB=84=E7=82=B9=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E2=80=9C=E4=BB=A5=E6=96=87=E6=9C=AC=E5=BD=A2=E5=BC=8F?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E7=9A=84=E6=95=B0=E5=AD=97=E2=80=9D=EF=BC=8C?= =?UTF-8?q?=E4=BB=8E=E8=80=8C=E4=B8=8D=E8=83=BD=E8=BF=90=E8=A1=8C=E6=B1=82?= =?UTF-8?q?=E5=92=8C=E7=AD=89=E6=93=8D=E4=BD=9C=EF=BC=8C=E8=A6=81=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=BF=AE=E6=94=B9=E8=BF=98=E6=8C=BA=E9=BA=BB=E7=83=A6?= =?UTF-8?q?=E7=9A=84=E3=80=82=20=E4=BF=AE=E6=94=B9=E5=90=8E=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=A2=9E=E5=8A=A0`cellType=20=3D=20ColumnType.NUMERIC?= =?UTF-8?q?`=E5=90=8E=E4=BC=9A=E5=AF=BC=E5=87=BA=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=8C=E4=BC=9A=E8=87=AA=E5=8A=A8=E8=8E=B7?= =?UTF-8?q?=E5=8F=96`scale`=E7=9A=84=E5=80=BC=E4=BD=9C=E4=B8=BA=E5=B0=8F?= =?UTF-8?q?=E6=95=B0=E7=82=B9=E4=BF=9D=E7=95=99=E5=80=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/poi/ExcelUtil.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index b9f9ac289..176b5ce2d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -837,7 +837,25 @@ public class ExcelUtil } else if (value instanceof BigDecimal && -1 != attr.scale()) { - cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString()); + String valueStr = (((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString(); + //增加如果设置cellType是数值格式,则设置自定义小数点的格式 + if (Excel.ColumnType.NUMERIC == attr.cellType()) { + //需要新建个样式,直接从styles.get("data")会被后续的覆盖掉 + CellStyle cellStyle = wb.createCellStyle(); + cellStyle.cloneStyleFrom(styles.get("data")); + DataFormat df = wb.createDataFormat();//此处设置数据格式 + String precision = "0." + StringUtils.leftPad("", attr.scale(), "0"); + cellStyle.setDataFormat(df.getFormat(precision)); + cell.setCellStyle(cellStyle); + cell.setCellValue(Double.parseDouble(valueStr)); + } else { + //否则还是字符串导出 + cell.setCellValue(valueStr); + } + } else { + // 设置列类型 + setCellVo(value, attr, cell); + } } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) {