本文介绍: 例如异常:NullPointerException at sun.awt.FontConfiguration.getVersion ,Could not initialize class sun.awt.X11FontManage。easyexcel默认是全部实体字段都会参与读写,不管你是否加了@ExcelProperty注解。最好不使用 lombok 的@Data、@Accessors注解。…
高频问题
最好不使用 lombok 的@Data、@Accessors注解
1、我的部分字段为什么没法读取或者写入?
- 读写反射对象用到了Cglib,所以成员变量必须符合驼峰规范,请确认是否符合驼峰规范
- 使用了lombok的@Accessors(chain = true) ,无法被Cglib读取
- 出现 NoSuchMethodException , ClassNotFoundException, NoClassDefFoundError等异常 一般是版本兼容出问题了,
参照:
TIP:如果项目中没有使用过poi,且jdk版本在8-17之间,直接使用最新版本,别犹豫。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
<exclusions>
<exclusion>
<artifactId>poi-ooxml-schemas</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
</exclusions>
</dependency>
2、只要部分字段去匹配excel(excel写入内容匹配不上等)
easyexcel默认是全部实体字段都会参与读写,不管你是否加了@ExcelProperty注解
3、我在本地可以,发布到线上环境怎么不可以了?
例如异常:NullPointerException at sun.awt.FontConfiguration.getVersion ,Could not initialize class sun.awt.X11FontManage
大概率是缺少字体库导致,2个方案:
- 安装字体(推荐)
看下服务器是否安装了字体,jdk8字体需要自己安装请安装字体:dejavu-sans–fonts 和 fontconfig 在dockerfile中增加字体安装命令: RUN yum install dejavu-sans-fonts fontconfig –y
普通的线上环境直接运行: yum install dejavu-sans-fonts fontconfig –y - 开启内存处理模式(不推荐,1W数据以内可以考虑,大了很容易OOM)
EasyExcel
.write(fileName, DemoData.class)
// 核心这个配置 开始内存处理模式
.inMemory(Boolean.TRUE)
.sheet("模板")
.doWrite(data());
原文地址:https://blog.csdn.net/qq_44086060/article/details/126618248
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_37684.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。