easy excel date 类型解析报错_Excel神具EasyExcel,常见API
一、前言
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便。
下面我们来简单学习一下EasyExcel的常用API。
二、关于常见类解析
- EasyExcel 入口类,用于构建开始各种操作
- ExcelReaderBuilder ExcelWriterBuilder 构建出一个 ReadWorkbook WriteWorkbook,可以理解成一个excel对象,一个excel只要构建一个
- ExcelReaderSheetBuilder ExcelWriterSheetBuilder 构建出一个 ReadSheet WriteSheet对象,可以理解成excel里面的一页,每一页都要构建一个
- ReadListener 在每一行读取完毕后都会调用ReadListener来处理数据
- WriteHandler 在每一个操作包括创建单元格、创建表格等都会调用WriteHandler来处理数据
- 所有配置都是继承的,Workbook的配置会被Sheet继承,所以在用EasyExcel设置参数的时候,在EasyExcel...sheet()方法之前作用域是整个sheet,之后针对单个sheet
三、读
(1)注解
- ExcelProperty 指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index=0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。千万别三个混着用,除非你非常了解源代码中三个混着用怎么去排序的。
- ExcelIgnore 默认所有字段都会和excel去匹配,加了这个注解会忽略该字段
- DateTimeFormat 日期转换,用String去接收excel日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormat
- NumberFormat 数字转换,用String去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormat
- ExcelIgnoreUnannotated 默认不加ExcelProperty 的注解的都会参与读写,加了不会参与
(2)参数
通用参数
ReadWorkbook,ReadSheet 都会有的参数,如果为空,默认使用上级。
- converter 转换器,默认加载了很多转换器。也可以自定义。
- readListener 监听器,在读取数据的过程中会不断的调用监听器。
- headRowNumber 需要读的表格有几行头数据。默认有一行头,也就是认为第二行开始起为数据。
- head 与clazz二选一。读取文件头对应的列表,会根据列表匹配数据,建议使用class。
- clazz 与head二选一。读取文件的头对应的class,也可以使用注解。如果两个都不指定,则会读取全部数据。
- autoTrim 字符串、表头等数据自动trim
- password 读的时候是否需要使用密码
ReadWorkbook(理解成excel对象)参数
- excelType 当前excel的类型 默认会自动判断
- inputStream 与file二选一。读取文件的流,如果接收到的是流就只用,不用流建议使用file参数。因为使用了inputStream easyexcel会帮忙创建临时文件,最终还是file
- file 与inputStream二选一。读取文件的文件。
- autoCloseStream 自动关闭流。
- readCache 默认小于5M用 内存,超过5M会使用 EhCache,这里不建议使用这个参数。
- useDefaultListener @since 2.1.4 默认会加入ModelBuildEventListener 来帮忙转换成传入class的对象,设置成false后将不会协助转换对象,自定义的监听器会接收到Map对象,如果还想继续接听到class对象,请调用readListener方法,加入自定义的beforeListener、 ModelBuildEventListener、 自定义的afterListener即可。
ReadSheet(就是excel的一个Sheet)参数
- sheetNo 需要读取Sheet的编码,建议使用这个来指定读取哪个Sheet
- sheetName 根据名字去匹配Sheet,excel 2003不支持根据名字去匹配
四、写
(1)注解
- ExcelProperty index 指定写到第几列,默认根据成员变量排序。value指定写入的名称,默认成员变量的名字,多个value可以参照快速开始中的复杂头
- ExcelIgnore 默认所有字段都会写入excel,这个注解会忽略这个字段
- DateTimeFormat 日期转换,将Date写到excel会调用这个注解。里面的value参照java.text.SimpleDateFormat
- NumberFormat 数字转换,用Number写excel会调用这个注解。里面的value参照java.text.DecimalFormat
- ExcelIgnoreUnannotated 默认不加ExcelProperty 的注解的都会参与读写,加了不会参与
(2)参数
通用参数
WriteWorkbook,WriteSheet ,WriteTable都会有的参数,如果为空,默认使用上级。
- converter 转换器,默认加载了很多转换器。也可以自定义。
- writeHandler 写的处理器。可以实现WorkbookWriteHandler,SheetWriteHandler,RowWriteHandler,CellWriteHandler,在写入excel的不同阶段会调用
- relativeHeadRowIndex 距离多少行后开始。也就是开头空几行
- needHead 是否导出头
- head 与clazz二选一。写入文件的头列表,建议使用class。
- clazz 与head二选一。写入文件的头对应的class,也可以使用注解。
- autoTrim 字符串、表头等数据自动trim
WriteWorkbook(理解成excel对象)参数
- excelType 当前excel的类型 默认xlsx
- outputStream 与file二选一。写入文件的流
- file 与outputStream二选一。写入的文件
- templateInputStream 模板的文件流
- templateFile 模板文件
- autoCloseStream 自动关闭流。
- password 写的时候是否需要使用密码
- useDefaultStyle 写的时候是否是使用默认头
WriteSheet(就是excel的一个Sheet)参数
- sheetNo 需要写入的编码。默认0
- sheetName 需要些的Sheet名称,默认同sheetNo
WriteTable(就把excel的一个Sheet,一块区域看一个table)参数
- tableNo 需要写入的编码。默认0
五、参考地址
https://www.yuque.com/easyexcel/doc/api
EasyExcel
easy excel date 类型解析报错_Excel神具EasyExcel,常见API相关推荐
- easy excel date 类型解析报错_Python成为专业人士笔记-date 对象、time 对象及datetime用法深度剖析...
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com 将字符串解析为对应时区的datetime对象 ...
- easy excel date 类型解析报错_实例1:用Python自动批量生成Excel档物料标签
作为一个生产型企业,其产品种类繁多.按照客户要求,每种产品在出货时都需要在包装上贴上如下信息标签,以便识别. 标签上需要包含6种信息,原始资料内容如下: 我们注意到原始信息中的品牌,有些是大写,有些是 ...
- easy excel date 类型解析报错_ptarchiver原理解析
pt-archiver原理解析 作为MySQL DBA,可以说应该没有不知道pt-archiver了,作为pt-toolkit套件中的重要成员,往往能够轻松帮助DBA解决数据归档的问题.例如线上一个流 ...
- easy excel date 类型解析报错_【今日真题】鼓楼小学教师招聘2017年考试真题及答案解析(上)...
点击上方关注我们! 1:教学内容的安排既要有系统性和连贯性,同时又要保持一定的难度和速度,并注意新旧知识的联系,这主要体现( )的要求.单项选择题A.循序渐进和促进发展相结合B.集体教学和因材施教相结 ...
- easy excel date 类型解析报错_11.MySQL数据类型
1.数字类型 1)整数类型 无符号数据类型:使用UNSIGNED关键字修饰. 示例: "INT"有符号NT类型: "INT UNSIGNED"无符号NT类型. ...
- easy excel date 类型解析报错_9 个绝对用得上的excel日期公式,赶紧拿走!
哈喽,大家好!关于excel中的日期问题,是很多exceler都绕不开的话题,比如计算当月的工作日天数,当前日期是一年中的第几天.第几周等等,面对这些问题,估计不少小伙伴可能都会反应不过来,想着应该用 ...
- easy excel date 类型解析报错_两个日期相差多少天,你还在一天天的数吗?用Excel轻松完成计算...
在我们的日常工作中,经常要计算两个日期之间相差多少天,两个时间之间相差多少小时等等,诸如此类的日期.时间之差怎么计算呢?今天小编就和大家分享如何利用Excel函数来完成计算. 一.计算年数.月数.天数 ...
- esaypoi导出excel后office打开报错
** esaypoi导出excel后office打开报错 ** 使用esaypoi导出excel后office打开报错,提示 "Excel 无法打开文件"导出表格 (1).xlsx ...
- 字符串类型日期时间转换为Date类型解析转换异常java.text.ParseException: Unparseable date: “2019-09-27T18:31:31+08:00”
字符串类型日期时间转换为Date类型解析转换异常java.text.ParseException: Unparseable date: "2019-09-27T18:31:31+08:00& ...
最新文章
- 10款在线格式转化应用
- 牛客华为机试第5题python
- 全球及中国新鲜芒果制品市场投资份额与营销渠道分析报告2022版
- 雷林鹏分享:PHP 数组
- 逻辑回归还能这样解?关于Kernel Logistic Regression的详细解释
- ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了
- 如果你没有时间读书,至少要保留这个习惯
- Django实战1-权限管理功能实现-01:搭建开发环境
- VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法
- 微软发布新品被指剽窃!交涉无果,两年开源项目被迫终结
- 163 邮件 服务器 ssl,为什么用163的smtp服务时要关闭TLS才能发送邮件?
- 论文趣读:人工智能里程碑?回顾2015年登上Nature的DQN(全文翻译+批注)
- 《长安十二时辰》利用大数据破案?
- ASCSDK-------通用包接入文档(COCOS篇)
- c语言一维数组程序题,C语言程序设计 练习题参考答案 第四章 一维数组
- 《那些年啊,那些事——一个程序员的奋斗史》十一
- 什么软件能测试太阳光照周期,你做的是UV测试,还是太阳光照测试?
- 基于Vue的数据埋点统计
- 一文看懂人工智能芯片的产业生态及竞争格局
- w13scan 扫描器的安装及应用