EasyExcel:读取Excel数据到List集合中

1. pom.xml

添加依赖

    <dependency>
      <groupId>com.alibabagroupId>
      <artifactId>easyexcelartifactId>
      <version>3.1.0version>
    dependency>

2. 定义实体类

注解:@ExcelProperty("参数"),参数对应Excel中的列名,没有顺序,想取哪一列就写哪一列。
public class ReportDetail {
		// ExcelIgnore 注解:实体类需要,但是Excel中没有的列,这里的id是数据库的自增ID主键
        @ExcelIgnore 
        private Integer id;
        @ExcelProperty("姓名")//Excel中的列名
        private String personName;
        .
        .
        // 无参构造 :必须
        // 有参构造,get/set方法

3. 定义存放Excel中数据的list集合

	ArrayList<ReportDetail> reportDetails = new ArrayList<>();

4. 读取Excel

read方法中的参数:
第一个参数:path:Excel文件的路径或者InputStream
第二个参数:实体类
第三个参数:ReadListener的匿名实现类,泛型中的参数:实体类类型

	EasyExcel.read(路径, 实体类类名.class, new AnalysisEventListener<实体类类名>() {
       @Override
       public void invoke(实体类类名 形参, AnalysisContext analysisContext) {
            list集合.add(形参);
       }
      @Override
      public void doAfterAllAnalysed(AnalysisContext analysisContext) {}
      }).sheet("Excel中的表名,默认第一个表").doRead();
  • 对应上面的实体类和list集合
	EasyExcel.read(path, ReportDetail.class, new AnalysisEventListener<ReportDetail>() {
       @Override
       public void invoke(ReportDetail reportExcel, AnalysisContext analysisContext) {
       		// 将读取到的每一行存入reportDetails集合中
            reportDetails.add(reportExcel);
       }
      @Override
      public void doAfterAllAnalysed(AnalysisContext analysisContext) {}
      }).sheet().doRead();

你可能感兴趣的:(Java,java,数据库,java-ee)