解决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

相关文章

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2