📚简介:
由于使用了easypoi
导出的excel列需要是数字的但是导出的默认是文本类型,这样选择列就无法进行统计求和,由于没有认真看注解导致我跑去分析源码。所以才有了这批文章。
这样选择列就无法进行统计
实体类
实体类中定义的
@Excel
值如下
我们可以看注解Excel中定义的字段类型表示啥意思
比较搞笑的是,有时候认真一点看源码注释都不需要自己debug进断点里面分析源代码
分析源码
在源码中主要关注该方法
getAllExcelField方法
里面会把我们实体类中定义的属性设置到excel对象中。
createSheetForMap方法
内容就是负责组装数据
insertDataToSheet方法
中调用createCells方法把传入的数据进行遍历其中t
对象就是取出来的需要插入的数据
createCells方法中就决定了单元格插入的数据是什么类型的
那这样就可以设置插入的字段类型是数字了.如果是数字还有其他要求格式呢,比如说保留小数点后2位呢?
getCellValue方法
那怎么设置格式化的类型呢?看源码可以看到转换的过程是使用DecimalFormat
进行转化,哪怕你不会用这个类百度一下也知道这个该如何设置数字的转换需求
到这来源码分享就结束了,当然分享源码没有那么容易我是吧比较重要的点拿出来说,还有很多方法没有去细讲,学着分享源码,我也是百度了很久也没有找到我需要的帖子迫于无奈只能分享源码,在有就是看注释非常重要,如果我当时看来注释就不需要痛苦的分享源码了。
numFormat设置数字转换类型
type:设置单元格是数字类型的那就
type设置10
由此可知
把原来的注解修改
修改实体类中的参数如下就可以完成文本转换数字类型
效果
这样数字类型的就可以求和了,也可以看出如果是文本类型的参数值是null插入数据会变成空,而数字类型的null会转换成0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83793.html