解决EasyPoi导入Excel获取不到第一列的问题

2024-04-17 05:44

本文主要是介绍解决EasyPoi导入Excel获取不到第一列的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 复现错误
  • 2. 分析错误
    • 2.1 导入的代码
    • 2.2 DictExcel实体类
    • 2.2 表头和标题
  • 3. 解决问题

1. 复现错误


使用EasyPoi导入数据时,Excel表格如下图:

在这里插入图片描述

但在导入时,出现如下错误:

在这里插入图片描述

name为英文名称,在第一列,Excel表格有值,但导入的代码中为null,就很奇怪?

2. 分析错误

2.1 导入的代码


因涉及公司代码,暂时就不贴出全部代码,只贴出部分问题的代码:

@Overridepublic void importExcel(WorkspaceUser user, MultipartFile file, Boolean coverFlag) {try {//【1】首先判断是不是空的文件if (file.isEmpty()) {throw new RuntimeException(IMPORT_EMPTY);}//【2】检查文件格式...//【3】设置EasyPoi参数ImportParams params = new ImportParams();//【3.1】设置标题params.setTitleRows(0);//【3.2】设置表头params.setHeadRows(2);//【3.3】导入数据List<DictExcel> dictExcels = ExcelImportUtil.importExcel(file.getInputStream(), DictExcel.class, params);//【4】检查是否存在导入数据......//【5】检查是否存在数据问题......} catch (Exception e) {log.error("error on import test excel", e);throw new RuntimeException(e);}}

2.2 DictExcel实体类

@Data
@ExcelTarget("dictExcel")
public class DictExcel {@Excel(name = "*英文缩写")private String abbreviation;@Excel(name = "英文名称")private String name;@Excel(name = "*中文名称")private String cnName;@Excel(name = "描述")private String description;
}

2.2 表头和标题


以上代码咋一看没有问题,进而分析Excel的表头和标题:

在这里插入图片描述

在有标题时,titleRows设置1,如果没有,设置 0 或者不设置(默认是0)。

因而,上述代码:

  1. params.setTitleRows(0);不对,应该是params.setTitleRows(1);,标题设置一行

  2. params.setHeadRows(2);不对,应该是params.setHeadRows(1);,表头设置一行

3. 解决问题

  1. params.setTitleRows(0);修改为是params.setTitleRows(1);,即标题设置一行

  2. params.setHeadRows(2);修改为params.setHeadRows(1);,即表头设置一行

//省略代码......
ImportParams params = new ImportParams();
//标题设置一行
params.setTitleRows(1);
//表头设置一行
params.setHeadRows(1);
//省略代码......

重新导入数据:

在这里插入图片描述

这篇关于解决EasyPoi导入Excel获取不到第一列的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910934

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField