记录使用easyExcel读取一个多sheet页签的Excel文件~

使用easyExcel读取多sheet Excel文件

项目场景:

easyExcel读取一个多sheet页签的Excel文件


问题描述

使用easyExcel读取一个多sheet页签的Excel文件
sheet1:
在这里插入图片描述

sheet2:
在这里插入图片描述

sheet3:
在这里插入图片描述

代码示例:

实体类

package com.tlc.mes.web.produce.sort.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 生产管理--回收分拣导入vo
 *
 * @author ggq
 * @date 2024-12-05
 */
@Data
@ApiModel("导入vo")
@ExcelIgnoreUnannotated
public class ProduceWorkExportVo {
   
   

    @ApiModelProperty("模板类别")
    @ExcelProperty(value = "模板类别")
    private String type;

    @ApiModelProperty("模板类型")
    @ExcelProperty(value = "模板类型")
    private String
读取 Excel 文件中的第二个 Sheet 数据可以使用 `EasyExcel` 提供的 API 来实现。`EasyExcel` 是一个基于 Java 的开源库,专门用于简化 Excel 文件的读写操作,尤其适用于处理大型 Excel 文件[^2]。以下是具体的实现步骤和代码示例。 ### 1. 添加 Maven 依赖 确保项目中已引入 `EasyExcel` 的 Maven 依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.1.1</version> </dependency> ``` ### 2. 定义数据模型类 创建一个 Java 类来映射 Excel 中的每一行数据。例如,假设第二个 Sheet 包含姓名和年龄两列: ```java public class User { @ExcelProperty("姓名") private String name; @ExcelProperty("年龄") private int age; // Getters and Setters } ``` ### 3. 实现读取操作 使用 `EasyExcel` 读取 Excel 文件的第二个 Sheet 数据,具体代码如下: ```java import com.alibaba.easyexcel.EasyExcel; import com.alibaba.easyexcel.read.listener.PageReadListener; public class ReadSecondSheet { public static void main(String[] args) { String fileName = "path/to/your/excel/file.xlsx"; // 注册监听器以处理读取到的数据 EasyExcel.read(fileName, User.class, new PageReadListener<User>(dataList -> { for (User user : dataList) { System.out.println("姓名: " + user.getName() + ", 年龄: " + user.getAge()); } })).sheet(1).doRead(); } } ``` 在上述代码中: - `sheet(1)` 表示读取第二个 Sheet (索引从 0 开始)。 - `PageReadListener` 是一个监听器,用于处理读取到的数据。 ### 4. 读取特定 Sheet 名称 如果需要根据 Sheet 名称读取,可以使用 `sheet("Sheet2")` 替代 `sheet(1)`: ```java EasyExcel.read(fileName, User.class, new PageReadListener<User>(dataList -> { for (User user : dataList) { System.out.println("姓名: " + user.getName() + ", 年龄: " + user.getAge()); } })).sheet("Sheet2").doRead(); ``` ### 5. 处理大型 Excel 文件 `EasyExcel` 支持按读取和处理大型 Excel 文件,避免内存溢出问题。通过监听器逐处理数据,确保高效读取。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值