首页 > 其他分享 >关于easyExcel解析未添加@ExcelProperty报错问题分析

关于easyExcel解析未添加@ExcelProperty报错问题分析

时间:2024-02-05 16:55:37浏览次数:43  
标签:转换 easyExcel ExcelProperty 报错 注解 解析

在一次做辅料商品导出列表的需求,并且上线之后发现,怎么商品列表的导出没有反应,一看日志,发现报错了:

这里新加了两个字段用于做转换使用。因为之前很少用easyExcel,所以以为只要不加@ExcelProperty,easyExcel就不会去解析字段,没想到easyExcel还是去做了解析。

源码分析

通过上面的源码可以看到。 contentPropertyMap.entrySet() 需要解析成excel的字段 beanMap 当前行的数据(就是要导出的list中的一条,这里的解析是一条条解析转换) 这里可以看到contentPropertyMap.entrySet() 里面竟然包含了我没有加上@ExcelProperty注解的isBind1688这个字段。所以我们接着追踪一下, writeContext.currentWriteHolder().excelWriteHeadProperty().getContentPropertyMap(); excel要导出的头早就已经在内存中存在。所以接着找一下源头。 上面是easyExcel的调用链。接下来就是重头戏:declaredOneField() 如上图:可以知道逻辑: 1、如果加上了@ExcelIgnore注解,就会加入到ignoreMap中,然后不会做转换。 2、如果class上加上了@ExcelIgnoreUnannotated、或者convertAllFiled=false并且field上没有加@ExcelProperty就会加入到ignoreMap中,然后不会做转换。 3、如果是static字段、final字段、transient(序列化忽略)字段,就会加入到ignoreMap中,然后不会做转换。

结论

1、如果不想让easyExcel转换我们不要的字段,我们可以在class上加上@ExcelIgnoreUnannotated注解,并且字段上不加@ExcelProperty注解。 2、可以加上@ExcelIgnore注解,就不会取转换解析。 3、可以加上transient,也可以不解析。 如上,这次碰到的是easyExcel解析了我不想让他解析的字段。这篇文章也只针对碰到的问题做解析,不做其他的框架解析。

标签:转换,easyExcel,ExcelProperty,报错,注解,解析
From: https://www.cnblogs.com/daxiebazi/p/18008431

相关文章

  • Unity打包Android报错:Target Android SDK not installed Android SDK does not includ
    1.需要查看当前unity版本中安装的SDKVersion2.找到对应路径下的文件,打开build-tools文件,其中就是对应的SDKVersion4.修改Unity中对应的配置 ......
  • Minecraft Fabric模组开发时遇到报错-Failed download after 3 attempts
    MinecraftFabric模组开发时遇到报错-Faileddownloadafter3attempts遇到的主要报错如下(当然以下只是一部分报错)Aproblemoccurredconfiguringrootproject'tuuorial_mod'.Failedtonotifyprojectevaluationlistener.FailedtosetupMinecraft,java.io.Unchecke......
  • jenkins 报错The engine "node" is incompatible with this module. Expected version
     错误是由于node版本不兼容导致的,解决方案就是忽略引擎版本的检查解决方案在前端编译的时候忽略引擎版本检测sh"yarnconfigsetregistryhttps://registry.npmmirror.com/"sh"npm-v"sh"yarn-v"sh"yarnadd......
  • [Elasticsearch] Elasticsearch 启动访问报错问题
    Elasticsearch启动访问报错问题产生的问题与解决方案环境:Windows10ES版本:8.12.0现象:双击elasticsearch.bat文件启动后,访问http://127.0.0.1:9200地址报了一个错误:receivedplaintexthttptrafficonanhttpschannel,closingconnectionNetty4HttpChannel.........
  • PyTorch下,使用list放置模块,导致计算设备不一的报错
    报错在复现Transformer代码的训练阶段时,发生报错:RuntimeError:Expectedalltensorstobeonthesamedevice,butfoundatleasttwodevices,cuda:0andcpu!解决方案通过next(linear.parameters()).device确定model已经在cuda:0上了,同时输入model.forward()的......
  • EasyExcel读取resources下多个excel文件的解决办法
    最近新的业务是需要读取resources下的excel文件并入库,没有做过类似的所以踩了很多坑话不多说开始:使用ResourcePatternResolver解析该目录下的多个excel文件  读取之后直接使用EasyExcel读取文集文件并且转换为实体对象,这里只需要注意些一个ExcelListener()监听器,具体怎么写这......
  • Teamcenter AWC开发:调用SOA时,报错No SOA service for Bom-2008-06-StructureManagemen
    1、报错:2、分析:我一直在纠结,究竟是SOA接口报错。还是没有这个SOA接口服务。因为在AWC生成的SOA文档,是有这个接口和服务的。后来明白了。如果是SOA接口报错。在网络中看到这个接口是有响应的。也就是有返回的。 但是NoSOAservice报错,网络中,看到接口时没有返回的。 3......
  • main函数第一行崩溃报错
    问题描述:之前可以运行,增加了两个文件和一个库文件之后,出现如下问题,堆栈溢出错误;0x00007FF60AEF32E7处有未经处理的异常(在VideoAnaStructTool.exe中):0xC00000FD:Stackoverflow(参数:0x0000000000000001,0x00000023BC473000)。2.原因分析因为程序默认堆栈大小是1M而......
  • pyqt报错、python报错:src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没
    报错信息:-DNDEBUG-fwrapv-O2-Wall-fPIC-O2-isystem/home/devil/anaconda3/envs/91/include-fPIC-O2-isystem/home/devil/anaconda3/envs/91/include-fPIC-I/usr/local/include-I/usr/include-I/home/devil/anaconda3/envs/91/include/python3.10-csrc/pyaudio/d......
  • Idea Jrebel 报错:Cannot reactivate,offline seat in use
    一、问题描述在使用ideaJrebel续期的时候,修改idea激活服务器地址时,遇到报错:Cannotreactivate,offlineseatinuse.ClickWorkonlineinJRebelconfigurationtoreturnofflineseat...二、问题解决找到idea配置文件:jrebel.properties,修改文件属性:rebel.license.......