easypoi导出excel,列要求是数字导出是文本的问题~并分析源码

导读:本篇文章讲解 easypoi导出excel,列要求是数字导出是文本的问题~并分析源码,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

📚简介:

       由于使用了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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!