EasyExcel实现读写Excel文件的示例代码

目录
  • 1、EasyExcel介绍
  • 2、EasyExcel特点
  • 3、EasyExcel写操作
    • 3.1 pom中引入xml相关依赖
    • 3.2 创建实体类
    • 3.3 实现写操作
  • 4、EasyExcel读操作
    • 4.1 创建实体类
    • 4.2 创建读取操作的监听器
    • 4.3 实现读操作

1、EasyExcel介绍

EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。

2、EasyExcel特点

Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。

EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。

3、EasyExcel写操作

3.1 pom中引入xml相关依赖

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>

3.2 创建实体类

设置表头和添加的数据字段

@Data
public class User {
    //设置表头名称
    @ExcelProperty(value = "用户编号")
    private int id;

    //设置表头名称
    @ExcelProperty(value = "用户名称")
    private String name;
}

3.3 实现写操作

这里先简单测试下

public class TestWrite {
    public static void main(String[] args) {
        //设置文件名称和路径
        String fileName="I:\\temp\\ggkt\\test.xlsx";
        //调用方法
        EasyExcel.write(fileName,User.class)
                .sheet("写操作")
                .doWrite(data());
    }

    //循环设置要添加的数据,最终封装到list集合中
    private static List<User> data() {
        List<User> list = new ArrayList<User>();
        for (int i = 0; i < 10; i++) {
            User data = new User();
            data.setId(i);
            data.setName("lucy"+i);
            list.add(data);
        }
        return list;
    }
}

读操作没有任何问题。

4、EasyExcel读操作

4.1 创建实体类

这里加上index属性,index=0表示第一列,以此类推

@Data
public class User {
    //设置表头名称
    //设置列对应的属性
    @ExcelProperty(value = "用户编号",index = 0)
    private int id;

    //设置表头名称
    //设置列对应的属性
    @ExcelProperty(value = "用户名称",index = 1)
    private String name;
}

4.2 创建读取操作的监听器

package com.atguigu.excel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;

import java.util.Map;

public class ExcelListener extends AnalysisEventListener<User> {

    //一行一行读取excel内容,把每行内容封装到User对象中
    //从excel第二行还是读取(第一行是表头)
    @Override
    public void invoke(User user, AnalysisContext context) {
        System.out.println(user);
    }
    //读取excel表头信息
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表头:"+headMap);

    }
    //读取完成后执行
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {

    }
}

4.3 实现读操作

import com.alibaba.excel.EasyExcel;

public class TestRead {
    public static void main(String[] args) {
        //设置文件名称和路径
        String fileName="I:\\temp\\ggkt\\test.xlsx";
        //调用方法进行读操作
        EasyExcel.read(fileName,User.class,new ExcelListener())
                .sheet()
                .doRead();
    }
}

读excel也没有什么问题。

到此,excel的读写操作就完了,当然这只是在测试类中写的,我的业务是实现课程分类列表的导入和导出功能,就需要完善前后端的是实现了,业务代码就不放出来了,要不就很繁琐,大致思想跟上面是一样的。

我的项目中实现效果如下:

点击按钮实现excel的导入和导出功能。

以上就是EasyExcel实现读写Excel文件的示例代码的详细内容,更多关于EasyExcel读写Excel的资料请关注我们其它相关文章!

(0)

相关推荐

  • Java 中EasyExcel的使用方式

    目录 背景 项目构建及依赖 创建实体类 生成Excel 解析Excel 其他相关特殊用法 自定义转换器 保留两位小数 排除指定Excel列 小结 背景 系统中经常要导出大量的数据,格式基本上都是Excel,然而每次导表都是对系统内存的一次挑战. 在Java领域,生成或解析Excel的框架比较有名的当属Apache的poi和jxl了.但使用它们,会面临着严重的内存损耗问题.如果系统的并发量还不行,一旦导出大量数据,便会出现JVM频繁full gc,甚至导致OOM. EasyExcel是阿里巴巴开源

  • Java中Easyexcel 实现批量插入图片功能

    目录 1 Maven依赖 2 PictureModel 3CustomPictureHandler 4 调试代码 5 调试结果 注: 注: 1 Maven依赖 <!--hutool工具包--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.5.1</version> </de

  • 关于easyExcel中读取Excel表头的实例说明

    目录 前言 1 环境准备 1 添加pom 2 添加dto对象 3 准备一个控制器 4 准备一个监听类 2 单表头Excel 3 多表头Excel 4 总结 前言 在使用easyExcel读取文件时,对于Excel的表头,在解析读取时分成不同的状态,需要加以区分. 1 环境准备 准备一个可以正常访问的SpringBoot项目. 1 添加pom <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <depende

  • Java利用EasyExcel实现合并单元格

    目录 pom版本 1.自定义合并单元格 1.1 不合并单元格 1.2 合并单元格 1.3 写多个sheet 1.4 WriteTable pom版本 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.7</version> </dependency> 1.自定义合并单元格 在某些

  • SpringBoot整合EasyExcel实现导入导出数据

    目录 前言 1.前端 2.数据库 3.后端 3.1 contrller 3.2 mapper 3.3 bean 3.4 listener 3.5 config 3.6 配置文件 4.启动测试 前言 创建一个普通的maven项目即可 项目目录结构 1.前端 存放在resources/static 下 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF

  • java EasyExcel面向Excel文档读写逻辑示例详解

    目录 正文 1 快速上手 1.1 引入依赖 1.2 导入与导出 2 实现原理 2.1 @RequestExcel 与 @ResponseExcel 解析器 2.2 RequestMappingHandlerAdapter 后置处理器 3 总结 正文 EasyExcel是一款由阿里开源的 Excel 处理工具.相较于原生的Apache POI,它可以更优雅.快速地完成 Excel 的读写功能,同时更加地节约内存. 即使 EasyExcel 已经很优雅了,但面向 Excel 文档的读写逻辑几乎千篇一

  • EasyExcel实现读写Excel文件的示例代码

    目录 1.EasyExcel介绍 2.EasyExcel特点 3.EasyExcel写操作 3.1 pom中引入xml相关依赖 3.2 创建实体类 3.3 实现写操作 4.EasyExcel读操作 4.1 创建实体类 4.2 创建读取操作的监听器 4.3 实现读操作 1.EasyExcel介绍 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单.节省内存著称.EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行

  • Python使用xlrd和xlwt批量读写excel文件的示例代码

    一.使用xlrd对excel进行数据读取 excel表格示例: 安装xlrd库 pip install xlrd 导入xlrd库 import xlrd 读取excel文件,即刚刚创建的excel表格 # 给出excel文件绝对路径 loc = ("path of file") # 打开工作表 wb = xlrd.open_workbook(loc) # 这里读取的是第一个sheet sheet = wb.sheet_by_index(0) 打印excel表格第一行第一列 >&g

  • Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码

    一.读Excel 1.Excel表格示例 2.对象示例 @Data public class DemoData { private String string; private Date date; private Double doubleData; } 3.监听器(重点部分) // 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去 public class DemoDataListener e

  • python使用xlrd和xlwt读写Excel文件的实例代码

    安装模块 如果使用的是Linux系统,并且安装了pip,可以直接使用pip安装xlrd, xlwt: pip install xlwt pip install xlrd 也可以从官网下载源代码安装: https://pypi.org/project/xlwt/1.1.2/ https://pypi.org/project/xlrd/ 下载tar.gz文件,解压,并转到解压后的目录中,找到setup.py,输入命令: sudo python setup.py install 安装完成. 导入模块:

  • python 读写excel文件操作示例【附源码下载】

    本文实例讲述了python 读写excel文件操作.分享给大家供大家参考,具体如下: 对excel文件的操作,python有第三方的工具包支持,xlutils,在这个工具包中包含了xlrd,xlwt等工具包.利用这些工具,可以方便的对excel 进行操作. 1. 下载 xlutils : http://pypi.python.org/pypi/xlutils 2. 安装,解压下载文件之后,可以 python setup.py install 3. 应用(生成EXCEL,遍历EXCEL,修改EXC

  • Java POI实现将导入Excel文件的示例代码

    问题描述 现需要批量导入数据,数据以Excel形式导入. POI介绍 我选择使用的是apache POI.这是有Apache软件基金会开放的函数库,他会提供API给java,使其可以对office文件进行读写. 我这里只需要使用其中的Excel部分. 实现 首先,Excel有两种格式,一种是.xls(03版),另一种是.xlsx(07版).针对两种不同的表格格式,POI对应提供了两种接口.HSSFWorkbook和XSSFWorkbook 导入依赖 <dependency> <group

  • c#读写excel文件使用示例

    因为支持csv,所以就一块写上了Workbook,Worksheet using Aspose.Cells(第三方) 把Excel读取到属性对象列表,需要传入对象类型和文件路径.例:List<PropSetCurrency> currencyList = this.GetObjectList<PropSetCurrency>(filePath);注:Excel的表头需要和对象名对应(可无序),且第一列不能为空 把属性对象列表保存到Excel,需要传入对象列表和保存的文件完整路径.例

  • C#使用NPOI库读写Excel文件

    本文实例为大家分享了C#使用NPOI库读写Excel文件的具体代码,供大家参考,具体内容如下 第一步添加程引用 : 右键项目工程 — 管理 NuGet程序包 — 搜索 NOPI — 安装 对文件Excel进行操作 读取excel文件 private IWorkbook wk;   private FileStream fs;  private void OpenExcel(string path)         {             StringBuilder sbr = new Str

  • C++实现读写文件的示例代码

    1.读取 1.1逐行读取 void readTxt(string file) { ifstream ifs; ifs.open(file); //将文件流对象与文件关联起来,如果已经关联则调用失败 assert(ifs.is_open()); //若失败,则输出错误消息,并终止程序运行 string s; while(getline(ifs,s)) //行分隔符可以显示指定,比如按照分号分隔getline(infile,s,';') { cout<<s<<endl; } ifs.c

  • Java利用Easyexcel导出excel表格的示例代码

    目录 1.导入 EasyExcel Maven包 2.配置 3.输出Excel到前端 1.导入 EasyExcel Maven包 <!--easyexcel 导出excel依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.7</version> </depend

随机推荐