|
|
@@ -6,6 +6,7 @@ import java.io.OutputStream;
|
|
6
|
6
|
import java.lang.reflect.Field;
|
|
7
|
7
|
import java.lang.reflect.Method;
|
|
8
|
8
|
import java.math.BigDecimal;
|
|
|
9
|
+import java.text.DecimalFormat;
|
|
9
|
10
|
import java.util.ArrayList;
|
|
10
|
11
|
import java.util.Arrays;
|
|
11
|
12
|
import java.util.Comparator;
|
|
|
@@ -536,6 +537,10 @@ public class ExcelUtil<T>
|
|
536
|
537
|
{
|
|
537
|
538
|
cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator));
|
|
538
|
539
|
}
|
|
|
540
|
+ else if (value instanceof BigDecimal && -1 != attr.scale())
|
|
|
541
|
+ {
|
|
|
542
|
+ cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString());
|
|
|
543
|
+ }
|
|
539
|
544
|
else
|
|
540
|
545
|
{
|
|
541
|
546
|
// 设置列类型
|
|
|
@@ -831,7 +836,14 @@ public class ExcelUtil<T>
|
|
831
|
836
|
}
|
|
832
|
837
|
else
|
|
833
|
838
|
{
|
|
834
|
|
- val = new BigDecimal(val.toString()); // 浮点格式处理
|
|
|
839
|
+ if ((Double) val % 1 > 0)
|
|
|
840
|
+ {
|
|
|
841
|
+ val = new BigDecimal(val.toString());
|
|
|
842
|
+ }
|
|
|
843
|
+ else
|
|
|
844
|
+ {
|
|
|
845
|
+ val = new DecimalFormat("0").format(val);
|
|
|
846
|
+ }
|
|
835
|
847
|
}
|
|
836
|
848
|
}
|
|
837
|
849
|
else if (cell.getCellTypeEnum() == CellType.STRING)
|