EasyExcel读取EXcel文件内容

这篇具有很好参考价值的文章主要介绍了EasyExcel读取EXcel文件内容。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一 官方文档介绍

二 读取文件内容

1.根据文档内容建立读对象

2.创建读监听器

3.测试类代码


一 官方文档介绍

Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。
easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便。

二 读取文件内容

自定义文件如图所示:

easyexcel读取数据,Java学习,JAVA

1.根据文档内容建立读对象

@Setter
@Getter
@EqualsAndHashCode
@ToString
public class ExcelData {
    @ExcelProperty(value ="班级" )
    private String classNumber;
    @ExcelProperty(value ="姓名" )
    private String name;
}

2.创建读监听器

package read.test;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Slf4j
public class DataListener implements ReadListener<ExcelData> {
    private static final int BATCH_SIZE=10;
    private List<ExcelData> dataList= new ArrayList<>();

    @Override
    public void invokeHead(Map<Integer, ReadCellData<?>> headMap, AnalysisContext context) {
        ReadListener.super.invokeHead(headMap, context);
        System.out.println("解析到一条头数据");
        System.out.println(JSON.toJSONString(headMap.get(0)));
    }

    @Override
    public void invoke(ExcelData excelData, AnalysisContext analysisContext) {
        dataList.add(excelData);
        if (dataList.size()>=BATCH_SIZE){
            saveData();
            dataList.clear();
        }

    }


    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        saveData();
        System.out.println("解析完毕");
    }
    public void saveData(){
        System.out.println("正在读取"+dataList.size()+"条数据");
        System.out.println("**********************************************");
        dataList.forEach(l->{
            System.out.println(l.toString());
        });
        System.out.println("**********************************************");
    }
}

3.测试类代码

package read.test;

import com.alibaba.excel.EasyExcel;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
@Slf4j
public class TestDemo {
    @Test
   public void test_read() throws InterruptedException {
        String filename="C:\\Users\\13404\\Desktop\\桌面附件\\test.xlsx";
        System.out.println("Excel内容如下:");
        EasyExcel.read(filename,ExcelData.class,new DataListener()).sheet(0).doRead();
    }
}

结果:

easyexcel读取数据,Java学习,JAVA

最后给出官方文档的链接,感兴趣的同学自行了解。关于Easyexcel | Easy Excel (alibaba.com) 文章来源地址https://www.toymoban.com/news/detail-631498.html

到了这里,关于EasyExcel读取EXcel文件内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 若依使用easyexcel读取解析excel文件示例

    睿洛医疗 目标:结构化自定义列数和列标题的excel数据。   创建数据类 创建监听类 创建数据类 创建监听类 参考:EasyExcel

    2024年02月11日
    浏览(42)
  • Apache POI及easyExcel读取及写入excel文件

    目录 1.excel 2.使用场景 3.Apache POI 4.easyExcel 5.总结 1.excel excel分为两版,03版和07版。 03版的后缀为xls,最大有65536行。 07版的后缀为xlsx,最大行数没有限制。 2.使用场景 将用户信息导出到excel表格中。 将excel中的数据读取到数据库中。 3.Apache POI (1)说明 Apache POI是Apache软件基金会

    2024年02月06日
    浏览(51)
  • 使用java解析和读取excel表格(EasyExcel的简单使用)

    ** ** Apache POI、JXL、Alibaba EasyExcel等。其中Apache POI基于DOM方式进行解析,将文件直接加载内存,所以速度较快,适合Excel文件数据量不大的应用场景; EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下

    2024年01月16日
    浏览(47)
  • 【JAVA】easyexcel 导出excel文件带多个图片

    最终效果  pom版本 实现代码  

    2024年02月16日
    浏览(36)
  • 【Java结合EasyExcel,模板文件填充并导出Excel】

    需求描述: 客户网页上填一个Excel表格,数据存到数据库,这个导出接口要做的就是从数据库中的获取数据并填充到模板文件,最后通过response返给前端一个下载链接,用户即可获取填充好的Excel文件。 方案一: 一开始使用的是easypoi,发现当填充一行数据时是OK的,但是如果

    2024年02月09日
    浏览(57)
  • 基于EasyExcel的Excel读取

    1.引入依赖 2.读取器代码: 3.测试

    2024年02月12日
    浏览(45)
  • 【Alibaba工具型技术系列】「EasyExcel技术专题」实战研究一下 EasyExcel 如何从指定文件位置进行读取数据

    EasyExcel的使用背景 工作中总会遇到对Excel读写功能,之前接触过EasyExcel,后续我们基本上用它代替了传统的POI和JXL、甚至还有一个EasyPOI技术。 EasyExcel的时候痛点 使用的EasyExcel时候,一般场景下表头比较传统,也不复杂,但是这次呢表头稍微有点复杂,读取数据要从指定的位

    2024年01月21日
    浏览(45)
  • EasyExcel读取多sheet excel异常

    使用Spring Boot集成EasyExcel进行导入excel多sheet,执行异常 file是MultipartFile,入参,主要处理流程如下 异常: com.alibaba.excel.exception.ExcelCommonException: Convert excel format exception.You can try specifying the ‘excelType’ yourself 按照描述,缺少excelType参数,补充后,代码大概如下: 异常: com.

    2024年02月16日
    浏览(37)
  • Springboot基于easyexcel实现一个excel文件包含多个sheet表格的数据导出

    EasyExcel 是一款基于Java的开源Excel操作工具,它提供了简单且强大的 API,使开发人员可以轻松地读写、操作和生成Excel文件。 EasyExcel 支持 Excel 文件的导入和导出,可以处理大量数据,具有高性能和低内存占用。它可以读取 Excel 文件中的数据,并将数据转换为 Java 对象,也可

    2024年02月03日
    浏览(58)
  • EasyExcel导出Excel文件

    方法一 导入EasyExcel依赖 创建实体类 OrderServiceImpl 如果希望多个sheet导出那么可以 测试类 方法二 导入EasyExcel依赖 编写ExcelUtil 编写Service层代码 controller层代码 方法一与方法二都使用了EasyExcel进行Excel的导出,区别在于方法一建立了实体类进行Excel的导出,这样的好处是可以直

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包