|
@@ -8,6 +8,7 @@ import java.io.OutputStream; |
|
@@ -8,6 +8,7 @@ import java.io.OutputStream; |
|
8
|
import java.lang.reflect.Field;
|
8
|
import java.lang.reflect.Field;
|
|
9
|
import java.lang.reflect.Method;
|
9
|
import java.lang.reflect.Method;
|
|
10
|
import java.math.BigDecimal;
|
10
|
import java.math.BigDecimal;
|
|
|
|
11
|
+import java.text.DecimalFormat;
|
|
11
|
import java.util.ArrayList;
|
12
|
import java.util.ArrayList;
|
|
12
|
import java.util.Arrays;
|
13
|
import java.util.Arrays;
|
|
13
|
import java.util.Comparator;
|
14
|
import java.util.Comparator;
|
|
@@ -546,10 +547,14 @@ public class ExcelUtil<T> |
|
@@ -546,10 +547,14 @@ public class ExcelUtil<T> |
|
546
|
{
|
547
|
{
|
|
547
|
cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator));
|
548
|
cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator));
|
|
548
|
}
|
549
|
}
|
|
549
|
- else if (StringUtils.isNotEmpty(dictType))
|
550
|
+ else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value))
|
|
550
|
{
|
551
|
{
|
|
551
|
cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator));
|
552
|
cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator));
|
|
552
|
}
|
553
|
}
|
|
|
|
554
|
+ else if (value instanceof BigDecimal && -1 != attr.scale())
|
|
|
|
555
|
+ {
|
|
|
|
556
|
+ cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString());
|
|
|
|
557
|
+ }
|
|
553
|
else
|
558
|
else
|
|
554
|
{
|
559
|
{
|
|
555
|
// 设置列类型
|
560
|
// 设置列类型
|
|
@@ -896,7 +901,14 @@ public class ExcelUtil<T> |
|
@@ -896,7 +901,14 @@ public class ExcelUtil<T> |
|
896
|
}
|
901
|
}
|
|
897
|
else
|
902
|
else
|
|
898
|
{
|
903
|
{
|
|
899
|
- val = new BigDecimal(val.toString()); // 浮点格式处理
|
904
|
+ if ((Double) val % 1 > 0)
|
|
|
|
905
|
+ {
|
|
|
|
906
|
+ val = new BigDecimal(val.toString());
|
|
|
|
907
|
+ }
|
|
|
|
908
|
+ else
|
|
|
|
909
|
+ {
|
|
|
|
910
|
+ val = new DecimalFormat("0").format(val);
|
|
|
|
911
|
+ }
|
|
900
|
}
|
912
|
}
|
|
901
|
}
|
913
|
}
|
|
902
|
else if (cell.getCellTypeEnum() == CellType.STRING)
|
914
|
else if (cell.getCellTypeEnum() == CellType.STRING)
|