java解析EasyExcel工具的使用

------------恢复内容开始------------

底层是一行一行读取表格中的内容

 阿里的

 

--EasyExcel写操作----

1导入依赖 两个

        <!-- EasyExcel 还需要poi的依赖 父pom里面有了        <poi.version>3.17</poi.version>
        https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.1</version>
        </dependency>

2设置写入类

package until.easyExcel;

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

@Data
public class DemoEasyExcel {

    //设置表头名称
    @ExcelProperty
    private Integer sno;
    @ExcelProperty
    private String sname;


}

3先把数据写入到类中  再调用esaySexcel的方法写入excel中

 @Test
    public void easyexcelwrite(){
        //设置生成的文件地址
        String fileName="D:\\Test\\write.xls";
        // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
        //调用方法实现
        EasyExcel.write(fileName, DemoEasyExcel.class).sheet("写入方法一").doWrite(getData());
                        //文件       类                    sheet名字                  写入数据
    }

    //设置类的数据 就是先把数据放到类里面
    public List<DemoEasyExcel> getData(){
        List<DemoEasyExcel> list = new ArrayList<DemoEasyExcel>();
        for (int i = 0; i < 10; i++) {
            DemoEasyExcel data = new DemoEasyExcel();
            data.setSno(i);
            data.setSname("张三"+i);
            list.add(data);
        }
        return list;
    }

 

 

 

 --EasyExcel读操作----

 

1导入依赖 如上

2 设置存储excel内容的一个类

package until.easyExcel;

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

@Data
public class ReadEasyExcel {

    //设置表头名称
    @ExcelProperty(value = "学号", index = 0)
    private Integer sno;
    @ExcelProperty(value = "姓名",index = 1)
    private String sname;


}

3设置监听器 实现AnalysisEventListener 注意泛型

package until.easyExcel;

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

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

public class ExcelListener extends AnalysisEventListener<ReadEasyExcel> {

    //创建list集合封装最终的数据
//    List<ReadEasyExcel> list = new ArrayList<ReadEasyExcel>();

    //读取excel内容
    @Override
    public void invoke(ReadEasyExcel readEasyExcel, AnalysisContext analysisContext) {
        System.out.println("数据:"+readEasyExcel);
    }

    //读取表头的方法
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表头:"+headMap);
    }

    //读取完成之后执行的方法
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        System.out.println("结束");
    }
}

 

 

 

 

------------恢复内容结束------------

posted on 2022-05-22 22:39  ziwang520  阅读(199)  评论(0)    收藏  举报