基于阿里的EasyExcel早期版本中行数据对应不上的问题解析

easyExcel读取的数值不是点开单元格的真实数值,无实体类 easyExcel导入时读取为2.4400003,现在想要使导入时读取为2.4400003004567,无实体类不可加@NumberForma 阅读详情

前言

开发中,对于开发者而言跟Excel打交道似乎是无可避免的,特别是代码和Excel之间数据的交互上。现在主流的poi工具有很多,但是在性能上、易用性上或多或少会存在一些小小的不足,于是alibaba开源工具easyexcel诞生了。
在使用easyexcel的时候,自己也遇到了一些坑,自己百度了很久都没人提到这个问题,于是自己看着源码一步一步解决了这个问题,同时也在这分享出来参考!

实战

1、导入一个相关依赖即可!

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.0.0-beta6</version>
        </dependency>

2、读取(上传)Excel文件,使用上非常的简单,只要几行代码。

public class EasyExcelDemo {

    public static void main(String[] args) {
        String path = "E:\\tmp\\demo.xlsx";
        // 自定义读取每一行数据的事件监听
        ReadListen readListen = new ReadListen();
        // 开始读取Excel数据
        ExcelReader reader = EasyExcel.read(path, readListen).build();
        // 读取第一个sheet,readSheet默认是读取第一个,可以自定义
        ReadSheet readSheet = EasyExcel.readSheet().build();
        // 开始读取数据
        reader.read(readSheet);
        // 这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的
        reader.finish();
    }

}

3、自定义ReadListen,主要是为了装数据,方便获取和使用,具体怎么调到这个方法的,以及出现的问题点在哪,往下走。。。

public class ReadListen<T> extends AnalysisEventListener<T> {

    private List<T> sheetData = new ArrayList<>(10);

    @Override
    public void invoke(T t, AnalysisContext analysisContext) {
        sheetData.add(t);
        System.out.println(t);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    // Excel数据解析完成后,想要实现的业务逻辑
        System.out.println("excel data resolve finish!!!");
    }
}

4、开始源码分析,easyexcel怎么读取数据,以及问题点分析解决!
4.1 当调用reader.read(readSheet);时,进入

    public ExcelReader read(ReadSheet readSheet) {
        checkFinished();
       // 开始进入解析sheet
        excelAnalyser.analysis(readSheet);
        return this;
    }

我们只要分析excelAnalyser.analysis(readSheet);,进入继续

analysisContext.currentSheet(excelExecutor, readSheet);
try {
// 真正解析sheet表格的地方
    excelExecutor.execute();
} catch (ExcelAnalysisStopException e) {
    if (LOGGER.isDebu
EasyExcel合并相同内容单元格及动态标题功能的实现 相信很多同学都用过EasyExcel做过导出功能,现在阿Q也碰到一个需求,就是要把导出的Excel中内容相同的纵向单元格给合并,然后还需要给Excel设置动态标题,再进行格式定义调整,现将这个功能的实现过程记录下,给同学们做个参考避免踩到同样的坑......... 阅读详情

相关推荐

读取Excel还用POI?试试这款开源工具

写在前面Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据...

日拱一兵 6320

Web项目利用EasyExcel实现Excel的导出操作

早期Java使用的一些解析,到处excel的框架存在种种问题被遗弃,现在使用阿里巴巴所提供的EasyExcel已成为一种主流,本篇将详细介绍该功能在Web项目中如何实际应用。

qq_63218110的博客 3216

EasyExcel写入操作详解:从原理到实践,解决大数据量Excel导出难题

在Java应用开发中,Excel文件处理是常见的需求,尤其是在数据导出场景。传统基于Apache POI的解决方案在处理大数据量时,常因内存中构建完整DOM树而引发内存溢出(OOM)问题。其原理在于一次性加载所有数据到内存,导致堆内存迅速耗尽。为解决这一痛点,流式写入技术应运而生,它通过逐行或分批将数据写入磁盘,而非全部驻留内存,从而显著降低内存占用,实现高性能、高稳定性的数据导出。这项技术的核心价值在于能够支撑百万甚至千万级数据量的导出任务,广泛应用于后台报表生成、数据仓库结果导出、金融对账单等场景。Ea

weixin_30383279的博客 337

SpringBoot + EasyExcel实战:多Sheet动态解析与复杂表头高效处理方案

本文详细介绍了在SpringBoot项目中,利用EasyExcel高效处理多Sheet动态解析与复杂表头的实战方案。通过具体代码示例,讲解了如何应对多行表头、动态表头映射以及未知Sheet结构等复杂场景,并提供了数据校验、分批处理、异步导入等关键性能优化与避坑指南,帮助开发者构建健壮的Excel数据导入导出功能。

weixin_29250573的博客 244

EasyExcel 3.1.1实战:如何将Excel数据快速转换为List<List<String>>(附完整代码)

本文详细介绍了如何使用阿里巴巴开源的EasyExcel 3.1.1库,将Excel文件高效、准确地转换为Java中的List<List<String>>二维字符串列表。针对遗留系统兼容、通用数据处理等场景,提供了完整的代码实现、核心监听器设计、性能优化策略以及生产环境下的异常处理方案,帮助开发者快速解决结构化Excel数据的原始读取需求。

g5h6i的博客 630

从EasyExcel到EasyExcel-Plus:一个开源项目的‘重生’故事与Java生态观察

本文探讨了从EasyExcel到EasyExcel-Plus的开源项目演变过程,分析了Java生态中开源项目的生命周期与治理模式。通过技术对比和社区治理案例,揭示了开发者离职潮下的项目延续策略,并展望了EasyExcel-Plus在云原生适配、AI集成等方面的技术演进方向。

weixin_30335575的博客 494

RV1126平台librga图像旋转裁剪实战

本文详细介绍了在rv1126平台上使用librga库实现图像旋转和裁剪的方法。首先解释了librga的基本概念和关键对象,包括源图像、目标图像和操作参数。随后分步骤说明了初始化设置、缓冲区创建、裁剪区域定义(通过坐标和尺寸参数)以及旋转操作(支持常见角度)。提供了完整的示例代码演示如何组合裁剪和旋转操作,并强调了性能优化、错误处理、格式支持等注意事项。通过硬件加速的librga,可以在rv1126平台上高效完成图像处理任务。

hwmxrhx的博客 1543

深入排查127.0.0.1拒绝连接:从端口占用到Tomcat服务启动的完整解决方案

本文针对开发者访问127.0.0.1时遭遇“拒绝连接”的常见问题,提供了一套完整的排查与解决方案。文章从端口占用检查入手,详细讲解了使用netstat命令识别进程,并深入分析了服务监听地址、IPv6配置、防火墙以及Tomcat服务安装与启动等核心环节。通过实战演练,指导读者系统性地解决从网络层到应用层的各类连接问题,最终确保本地服务成功运行并可通过本地回环地址正常访问。

weixin_29279047的博客 3180

从零构建:ESP32S3无线DAP-Link调试器的硬件与软件协同设计

本文详细介绍了基于ESP32S3的无线DAP-Link调试器的硬件与软件协同设计,涵盖关键元器件选型、无线通信协议优化、双核任务处理及低功耗调试方案。通过ESP-NOW协议实现低延迟无线调试,结合USB协议栈与双核协同,为嵌入式开发提供高效灵活的调试解决方案。

gitlab7runner的博客 857

保姆级教程:用Qlib和LightGBM从零搭建你的第一个AI量化选股策略(附完整代码)

本文提供了一份详细的教程,教你如何使用Qlib和LightGBM从零搭建AI量化选股策略。教程涵盖了环境配置、数据获取、特征工程、模型训练和策略回测等关键步骤,并附有完整代码和常见问题解决方案,适合量化投资初学者快速上手。

weixin_29191081的博客 443

【论文阅读】LIME:Low-light Image Enhancement via Illumination Map Estimation(笔记最全篇)

文章目录AbstractIntroductionContributionMethodSpeed-up Method(1):ALM子问题 T子问题 G子问题 Z和μ\muμSpeed-up Method(2):权重变量实验conclusion 今天要整理的一篇论文是使用传统的方法解决低照度的问题,Guo等人于2016年发表在IEEE上,论文《LIME:Low-light Image Enhance...

florrie 2万+

修改注册表导致开机时电脑显示“无法登陆到你的账户”的问题解决方案

1.问题描述:开机电脑显示“无法登陆到你的账户:通常可以通过从你的账户注销,然后重新登陆来解决问题,如果不立即注销,你创建的任何文件或进行的任何更改都将会丢失。” 2.问题原因:想要修改cmd中的用户名(红色部分),修改了注册表,重启时出现问题。 3.问题解决: win+R输入cmd,确定进入注册表界面,将下面的地址复制进地址栏(你也可以自己按目录查找),双击ProfileImage...

qq_33835957的博客 7万+

学习笔记【Day 20】鸿蒙PC应用在SD WAN MSTP场景用CodeArts test工具测试过程

多生成树协议(MSTP)作为二层网络高可靠、无环路的核心技术,其在鸿蒙 PC 上的兼容性与稳定性测试尤为重要。本文结合华为云 CodeArts TestPlan 全流程测试管理平台,详细拆解鸿蒙 PC 端 MSTP 功能的测试设计、环境搭建、执行验证。1.测试左移,保障迭代效率CodeArts TestPlan 将 MSTP 测试从后期集成阶段 “左移” 至开发早期,通过可复用用例库与自动化脚本,支持每次代码提交后的快速回归测试,避免网络功能稳定性因迭代被破坏。2.平台化工具破解复杂场景测试难题。

aiyijianghe的博客 1057

点云配准SIFT+SI+RANSAC+ICP

Spin Image(SI)是一种用于点云数据描述的特征描述子,广泛应用于三维点云配准、识别和重建等领域。它能够捕捉点云中的局部几何信息,具有旋转不变性和部分平移不变性等优点,是一种非常强大的特征描述子。Spin Image是一种强大的点云特征描述子,具有旋转不变性、局部几何信息捕捉等优点,适用于点云配准、目标识别和三维重建等多个领域。通过合理选择局部区域、建立参考框架和计算描述子,可以充分利用Spin Image描述点云的特征,从而实现各种三维场景分析和处理任务。

点云兔子的博客 557

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 基于IntelliJ IDEA将MySQL库表生成自定义实体
代码也要优雅
博客等级 码龄10年 4粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值