java一行代码读取Excel数据到集合

使用maven构建项目

引入依赖

<dependencies>
<!-- apache的poi-->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
    </dependency>
            <!-- 阿里巴巴esayexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.1</version>
        </dependency>
</dependencies>

因为阿里巴巴开源的easyexcel是在apache的poi上做的升级封装,性能No1

实体类

package com.atguigu.eduservice.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

/**
 * @Author YangXingChen
 * @Date 2022/5/22 17:00
 * @Version 1.0
 */
@Data
public class DemoData {
//   这里对于我们excel的表头,value对应表头,index表头的下标
    @ExcelProperty(value = "学生编号",index = 0)
    private Integer id;
    @ExcelProperty(value = "学生姓名",index = 1)
    private String name;
}

因为easyexcel读取文件是需要监听器的,我们直接复制监听器
固定代码,不要去背,会改就行了

package com.atguigu.eduservice.excel;

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


import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @Author YangXingChen
 * @Date 2022/5/22 17:34
 * @Version 1.0
 */
//创建读取excel监听器
public class ExcelListener extends AnalysisEventListener<DemoData> {
    //创建list集合封装最终的数据
    List<DemoData> list = new ArrayList<>();


    //一行一行去读取excle内容
    @Override
    public void invoke(DemoData demo, AnalysisContext analysisContext) {
//        打印当前一行数据对象
        System.out.println("----"+demo);
//        存放进集合
        list.add(demo);
    }
    //读取excel表头信息
    @Override
    public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
        System.out.println("表头信息:"+headMap);
    }

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

    }
}

读取

package com.atguigu.eduservice.excel;

import com.alibaba.excel.EasyExcel;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author YangXingChen
 * @Date 2022/5/22 17:00
 * @Version 1.0
 */
public class Demo {
    public static void main(String[] args) {
//        文件的路径
        String fileName="D://笔记//writer.xls";
//      读取使用read方法读取,fileName:文件路径,DemoData.class:实体类对象,new ExcelListener():监听器对象,
        EasyExcel.read(fileName,DemoData.class,new ExcelListener()).sheet().doRead();
    }
}

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Apache POI 库来读取 excel 文件中的数据,并将数据存储到 ArrayList 集合中。 以下是示例代码: ```java import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelReader { public static void main(String[] args) { try { // 加载 Excel 文件 InputStream inputStream = new FileInputStream("example.xlsx"); Workbook workbook = WorkbookFactory.create(inputStream); // 获得第一个工作表 Sheet sheet = workbook.getSheetAt(0); // 遍历所有行 ArrayList<ArrayList<String>> rows = new ArrayList<ArrayList<String>>(); for (Row row : sheet) { ArrayList<String> cells = new ArrayList<String>(); // 遍历所有单元格 for (Cell cell : row) { // 将单元格的值添加到 cells 集合中 cells.add(cell.getStringCellValue()); } // 将 cells 集合添加到 rows 集合中 rows.add(cells); } // 打印 rows 集合中的数据 for (ArrayList<String> cells : rows) { for (String cell : cells) { System.out.print(cell + "\t"); } System.out.println(); } // 关闭输入流 inputStream.close(); } catch (Exception ex) { ex.printStackTrace(); } } } ``` 上述代码excel 文件中的所有数据存储到了一个 ArrayList 的 ArrayList 中,每个内部 ArrayList 代表一行数据,可以根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值