项目开发中,Excel导入导出一直是比较重要并且常见的一个功能,之前在项目开发中一直使用的是Apache poi,最近发现alibaba推出的一个框架Easy Excel ,官网地址:EasyExcel官网,好奇心驱使下想尝试着使用一下。经过一段时间使用之后现将自己使用过程中感觉到的优缺点总结一下。

优点:EasyExcel正如他官网宣称的那样特别节省内存,而且如果你的excel表格是比较规整的数据并且列正好和你java实体类的字段对应的比较好,那使用这个框架还是比较方便,加上简单的注解,几行代码就可以很方便的将数据导入导出。

缺点:社区不够完善,目前只有官网的文档,网上搜帖子也基本都是官网的例子拿来简单修改一下,遇到问题得自己研究解决。针对比较特殊的需求 比如导入导出图片、单元格格式的设置不是很方便。

最近在使用过程中遇到了一个坑,项目中我使用的持久层框架是MybatisPlus  利用代码生成器生成的时间类型是LocalDateTime,

在excel中时间格式形如2020/01/20(日期类型)  或者 2020-01-20(文本类型)这就导致直接导入会报错。

报错如下:

试了好多次,找到了两种解决方案:

1、将java类中字段类型由LocalDateTime改为String,这样可以直接读取excel日期数据,并且改为String类型之后并不影响数据入库,数据库可以识别String并转为日期类型(mysql5.7),而且这样还有好处就是省去了很多字符串转LocalDateTime的工作。最重要的是不影响时间的比较。

2、自己写一个converter

/*** @ClassName LocalDateTimeConverter* @Description EasyExcel LocalDateTime转换器* @Author amx* @Date 2020/9/17 6:10 下午**/
public class LocalDateTimeConverter implements Converter<LocalDateTime> {private static final String DEFAULT_PATTERN = "yyyy-MM-dd";@Overridepublic Class supportJavaTypeKey() {return null;}@Overridepublic CellDataTypeEnum supportExcelTypeKey() {return null;}@Overridepublic LocalDateTime convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DEFAULT_PATTERN);LocalDate localDate = LocalDate.parse(cellData.getStringValue(),dateTimeFormatter);LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.of(00,00));return localDateTime;}@Overridepublic CellData convertToExcelData(LocalDateTime localDateTime, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {return null;}
}

然后在你项目java实体中导入的字段注解中加入这个转换器即可:

以上。

EasyExcel导入excel中时间格式到LocalDateTime字段转换器Converter相关推荐

  1. 在ArcGIS中导入excel中的经纬度点数据,但和其它shp数据无法同时显示的问题

    在ArcGIS中,将导入的经纬度点数据与其它矢量数据同时显示 文章目录 在ArcGIS中,将导入的经纬度点数据与其它矢量数据同时显示 前言 一.数据说明 二.步骤 1.设置图层属性 2.导入excel ...

  2. POI easyExcel 设置单元格时间格式的有效性验证

    POI && easyExcel 设置单元格时间格式的有效性验证 设置单元格时间格式的有效性验证示例 // 检查的区域 new CellRangeAddressList(-1, -1, ...

  3. openrowset excel 科学计数_txt的数据导入excel中身份证或银行卡显示成科学计数如何解决...

    用excel自带的"数据"->"自文本"将txt的数据导入excel中,如果数字特别长比如身份证或者银行卡会显示成科学计数法,如下: 借助sqlcel我们 ...

  4. linux下数据库时间格式,Java编程时间格式与数据库中时间格式转化

    关于编程语言中的时间格式和关系型数据中的中时间格式问题的转化一直都是个简单而又不得不权衡的问题,这牵扯到数据库设计和SQL编程和应用程序中时间格式数据的处理的编程,两者总能够交缠在一起. 关于Java ...

  5. java hh24miss_Java编程时间格式与数据库中时间格式转化

    关于编程语言中的时间格式和关系型数据中的中时间格式问题的转化一直都是个简单而又不得不权衡的问题,这牵扯到数据库设计和SQL编程和应用程序中时间格式数据的处理的编程,两者总能够交缠在一起. 关于Java ...

  6. easyExcel 导入Excel数据

    easyExcel 导入Excel数据 最近公司项目需要导入几十万的Excel数据,我这里用的是现在最流行的easyExcel, 希望能帮助到你 首先导入jar包 <dependency> ...

  7. txt的数据导入excel中身份证或银行卡显示成科学计数如何解决

    用excel自带的"数据"->"自文本"将txt的数据导入excel中,如果数字特别长比如身份证或者银行卡会显示成科学计数法,如下: 借助sqlcel我们 ...

  8. 电脑表格日期怎么修改原有日期_“电脑表格日期格式怎么改“如何把excel中日期格式设置为2001-01-01...

    如何在EXCEL中改变日期格式 1.打开需置日期格式的excel表. 2.选中日期所在的格,单击鼠键,选择"设置单元格格式"选项. 3.在弹对话框"数字"标签中 ...

  9. easy-excel导出excel中日期列需要双击才能进行筛选

    使用easy-excel导出的excel中,给日期那一例设置单元格格式,发现需要双击后才能生效,翻了一些资料说easy-excel程序导出的日期值是文本值,所以需要双击让excel转化一下,这边查了e ...

最新文章

  1. asp 设置table 间距_B端后台表格(table)如何设计
  2. 贸易保护主义不能解决德国光伏企业的问题
  3. Lamp(fastcgi)环境的搭建
  4. module 'cv2' has no attribute 'CV_LOAD_IMAGE_GRAYSCALE'
  5. python中的logging记录日志_[ Python入门教程 ] Python中日志记录模块logging使用实例...
  6. 关于MCP2515帧连发、多发的坑
  7. 体系结构笔记(1)Fundamentals of Computer Design
  8. TensorFlow 是一个用于人工智能的开源神器
  9. 阿里巴巴java开发手册 《Java开发手册》v1.5.0 华山版.pdf
  10. oracle执行计划explain,Oracle 常见的执行计划步骤(explain结果的Description数据参考)...
  11. Pdf格式文件怎么修改
  12. Mars Rover
  13. python对dataframe时序数据按时间顺序读取
  14. 如何用计算机二进制进行计算,计算机如何实现二进制数据运算
  15. Windows安裝SourceTree
  16. Ae488 4K高科技数字识别触摸屏幕ui元素动画钢铁侠模块化hud图形用户界面ae模板
  17. 系统日志管理及日志管理服务
  18. javax.xml.bind.UnmarshalException: 意外的元素 所需元素为「{}***」
  19. web指纹识别-web_finger
  20. 【C语言】[其他]:用C语言表示数学常数e

热门文章

  1. 仿优酷客户端底部导航源码
  2. 实例开机提示找不到磁盘Booting from Hard Disk... GRUB.
  3. 电能管理系统在保利·大江郡三期的应用
  4. 扫地机器人采用航顺芯片的应用经验,航顺MCU32位主控HK32F103VET6
  5. Ingram Micro Cloud将TeamViewer加入Cloud Marketplace,以助力远程工作
  6. QQ邮箱登录PC布局实战笔记一
  7. GitHub热榜第一的Python抢票神器,随时都能抢!
  8. 如何做网站仿站的原理与步骤图文教程 分析仿站必备知识总结
  9. 【html】浏览器与服务器
  10. 更新丨同屏互动上线,提供高效VR实时互动沟通平台!