EasyExcel的简单读取操作

博客介绍了使用EasyExcel进行简单读取操作的方法,包括pom.xml配置,通过定义监听器处理文件流,在Controller中使用,还提到要替换对应T,用自定义类接收数据字段以处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何使用EasyExcel进行简单读取的操作

pom.xml配置


        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.3.2</version>
        </dependency>

在此基础上我们通过定义监听器对文件流进行处理

public class DemoDataListener extends AnalysisEventListener<T> {

    @Override
    public void invoke(T data, AnalysisContext context) {
        //数据行
        System.out.println("********" + data);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        System.out.println("表头\t" + context);
    }
}

在Controller中对其进行使用

    @ApiOperation("上传Excel文件")
    @PostMapping("/upload")
    public List<T> upload(InputStream inputStream) {
        DemoDataListener listener = new DemoDataListener();
        EasyExcel.read(inputStream, T.class, listener).sheet().doRead();
        List<T> t= listener.returnBudgetFormUpload();

        return t;
    }

记得把对应需要的T替换出来,和我们上传的表格是一样的


@Data
@AllArgsConstructor
@NoArgsConstructor
public class BudgetFormUpload {

    @ExcelProperty(value ={"序号"},index = 0)
    private String serialNumber;

    @ExcelProperty(value ={"名称"},index = 1)
    private String projectName;


}

对应自己定义类去接收数据的字段,得到的数据就可以对其进行处理

EasyExcel 是阿里开源的一个基于 Java 的 Excel 操作工具,它能够简化对 Excel 文件的操作流程。设置从某一行开始读取数据是一个常见的需求。 在 EasyExcel 中设置读取的起始行非常简单,只需要通过 `ExcelReaderBuilder` 或者自定义 `AnalysisEventListener` 来控制即可。 ### 示例代码 ```java // 假设我们有一个监听器 MyReadListener 实现了 AnalysisEventListener 接口 public class DemoData { private String string; // 省略 getter 和 setter 方法 } public class MyReadListener extends AnalysisEventListener<DemoData> { @Override public void invoke(DemoData data, AnalysisContext context) { System.out.println("解析到一条数据: " + data); } @Override public void doAfterAllAnalysed(AnalysisContext context) { System.out.println("所有数据解析完成!"); } } ``` 然后你可以通过以下方式指定开始读取的行数: ```java String fileName = "..."; // 替换为实际文件路径 EasyExcel.read(fileName) .head(DemoData.class) // 绑定头信息映射到实体类 .sheet() // 默认第一个工作表 .registerReadListener(new MyReadListener()) // 注册事件监听器 .customConverterMap(null) // 可选配置转换器等其他属性 .autoTrim(true) // 自动去除空格,默认 true .headRowNumber(10 - 1) // 如果需要跳过前9行,则此处填入9 (注意是从第0行算起) .doRead(); // 开始执行读操作 System.out.println("已完成读取"); ``` 其中关键点在于 `.headRowNumber(int)` 这一方法调用,此值表示忽略前面多少行之后再正式进入数据处理阶段(索引起始于零)。假如想让程序真正意义上只关注第十行及后续的内容的话,在这里传参应该是“9”。 以上就是关于如何利用 easyexcel 设定特定起点来进行 excel 数据导入的基本说明啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈Demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值