EasyExcel数值格式保留小数以及自定义格式单元格
问题
- 在easyexcel里面设置单元格格式的时候,目前项目使用的是注解注入的方式,如下:
@ExcelProperty(value = "描述")
@ContentStyle(dataFormat = 49)
@ColumnWidth(value = 50)
private String description;
这里的dataformat对应的是以下的格式,49就是文本
private static final String[] BUILTIN_FORMATS_CN = {// 0"General",// 1"0",// 2"0.00",// 3"#,##0",// 4"#,##0.00",// 5"\"¥\"#,##0_);(\"¥\"#,##0)",// 6"\"¥\"#,##0_);[Red](\"¥\"#,##0)",// 7"\"¥\"#,##0.00_);(\"¥\"#,##0.00)",// 8"\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)",// 9"0%",// 10"0.00%",// 11"0.00E+00",// 12"# ?/?",// 13"# ??/??",// 14// The official documentation shows "m/d/yy", but the actual test is "yyyy/m/d"."yyyy/m/d",// 15"d-mmm-yy",// 16"d-mmm",// 17"mmm-yy",// 18"h:mm AM/PM",// 19"h:mm:ss AM/PM",// 20"h:mm",// 21"h:mm:ss",// 22// The official documentation shows "m/d/yy h:mm", but the actual test is "yyyy-m-d h:mm"."yyyy-m-d h:mm",// 23-26 No specific correspondence found in the official documentation.// 23null,// 24null,// 25null,// 26null,// 27"yyyy\"年\"m\"月\"",// 28"m\"月\"d\"日\"",// 29"m\"月\"d\"日\"",// 30"m-d-yy",// 31"yyyy\"年\"m\"月\"d\"日\"",// 32"h\"时\"mm\"分\"",// 33"h\"时\"mm\"分\"ss\"秒\"",// 34"上午/下午h\"时\"mm\"分\"",// 35"上午/下午h\"时\"mm\"分\"ss\"秒\"",// 36"yyyy\"年\"m\"月\"",// 37"#,##0_);(#,##0)",// 38"#,##0_);[Red](#,##0)",// 39"#,##0.00_);(#,##0.00)",// 40"#,##0.00_);[Red](#,##0.00)",// 41"_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)",// 42"_(\"¥\"* #,##0_);_(\"¥\"* (#,##0);_(\"¥\"* \"-\"_);_(@_)",// 43"_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)",// 44"_(\"¥\"* #,##0.00_);_(\"¥\"* (#,##0.00);_(\"¥\"* \"-\"??_);_(@_)",// 45"mm:ss",// 46"[h]:mm:ss",// 47"mm:ss.0",// 48"##0.0E+0",// 49"@",// 50"yyyy\"年\"m\"月\"",// 51"m\"月\"d\"日\"",// 52"yyyy\"年\"m\"月\"",// 53"m\"月\"d\"日\"",// 54"m\"月\"d\"日\"",// 55"上午/下午h\"时\"mm\"分\"",// 56"上午/下午h\"时\"mm\"分\"ss\"秒\"",// 57"yyyy\"年\"m\"月\"",// 58"m\"月\"d\"日\"",// 59"t0",// 60"t0.00",// 61"t#,##0",// 62"t#,##0.00",// 63-66 No specific correspondence found in the official documentation.// 63null,// 64null,// 65null,// 66null,// 67"t0%",// 68"t0.00%",// 69"t# ?/?",// 70"t# ??/??",// 71"ว/ด/ปปปป",// 72"ว-ดดด-ปป",// 73"ว-ดดด",// 74"ดดด-ปป",// 75"ช:นน",// 76"ช:นน:ทท",// 77"ว/ด/ปปปป ช:นน",// 78"นน:ทท",// 79"[ช]:นน:ทท",// 80"นน:ทท.0",// 81"d/m/bb",// end};
一般不做说明限制的都是默认常规类型的单元格,像上面那样做自定义的话显示的其实也还是自定义类型的格式,但是现在我需要把单元格格式设置为数值,并且保留小数点后三位,按道理来说应该是这样子设置
/**
* test, 最终导出值
*/
@ExcelProperty(value = "test")
@ColumnWidth(value = 10)
@NumberFormat("0.000")
private double test;
这时候导出会发现这是个自定义类型的单元格

这时候就需要这样子设置了, 在小数后面加下横杠和空格(不加空格的话是不生效的,还是默认的常规)
/**
* test, 最终导出值
*/
@ExcelProperty(value = "test")
@ColumnWidth(value = 10)
//加下横线并且加多个空格
@NumberFormat("0.000_ ")
private double test;
直接上效果图

同理,保留几位小数就在后面加0,不保留小数直接去掉小数点和后面的0
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
