EasyExcel的简单读取操作

EasyExcel的简单读取操作

  • Java领域解析、生成Excel比较有名的框架有Apache poi、 jxl等。但他们都存在一个严重的问题就是
    非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或
    者JVM频繁的full gc。
  • EasyExcel是阿里巴巴开源的一个excel处理框架, 以使用简单、节省内存著称。 EasyExcel能大大减
    少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一
    行行读取数据,逐个解析。
  • EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理
    (AnalysisEventListener)。

摘自官网

导入依赖

这个版本之间有个对应关系,不然会报错。

                    <!--xls-->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.17</version>
            </dependency>
            <!--xlsx-->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.17
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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值