EasyExcel看完肯定行

EasyExcel看完肯定行

1.随便创建一个Excel表格

2.引入依赖

<dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>3.1.1</version>
    </dependency>
 <!--   方便操作字段     -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.26</version>
    </dependency>
</dependencies>

3.读取Excel中的数据

public class ExcelTest {
    public static void main(String[] args) {
        List<ExcelData> list = new LinkedList<>();
        EasyExcel.read("testEasyexcel.xlsx")
                .head(ExcelData.class)// 进行比对
                .sheet()
                .registerReadListener(new AnalysisEventListener<ExcelData>() {

                    @Override
                    public void invoke(ExcelData excelData, AnalysisContext analysisContext) {
                        list.add(excelData);
                    }

                    @Override
                    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

                    }
                }).doRead();
        for (ExcelData excelData : list) {
            System.out.println(excelData);
        }
    }
}
image-20230921101123104

4.写入Excel文件

4.1 创建与excel文件字段对应的实体类
@Data
public class ExcelData {

    // 成员变量和Excel字段映射
    @ExcelProperty("整数")
    private Integer id;
    @ExcelProperty("小数")
    private Double aDouble;
    @ExcelProperty("字符串")
    private String str;
    @ExcelProperty("姓名")
    private String name;
}
4.2 读取
public class StrData {
    public static void main(String[] args) {
        List<ExcelData> excelData = parseData();
        // 写入
        EasyExcel.write("test1.xlsx")
                .excelType(ExcelTypeEnum.XLSX)
                .sheet("sheet2")
                .doWrite(excelData);
    }

    public static List<ExcelData> parseData(){
        LinkedList<ExcelData> list = new LinkedList<>();
        EasyExcel.read("testEasyexcel.xlsx")
                .head(ExcelData.class)// 进行比对
                .sheet()
                .registerReadListener(new AnalysisEventListener<ExcelData>() {

                    @Override
                    public void invoke(ExcelData excelData, AnalysisContext analysisContext) {
                        list.add(excelData);
                    }

                    @Override
                    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

                    }
                }).doRead();

        return list;
    }
}

5. 完整细节

public class test {
    public static void main(String[] args) {
        // 读取文件
        // 创建ExcelReaderBuilder实例
        ExcelReaderBuilder readerBuilder = EasyExcel.read();
        // 读取目标文件
        readerBuilder.file("testEasyexcel.xlsx");
        // 指定sheet
        readerBuilder.sheet("sheet1");
        // 自动关闭输入流
        readerBuilder.autoCloseStream(true);
        // 设置Excel文件格式
        readerBuilder.excelType(ExcelTypeEnum.XLSX);

        // 注册监听器进行数据解析
        readerBuilder.registerReadListener(new AnalysisEventListener() {

            @Override           // 将数据封装成Object 对象返回
            public void invoke(Object o, AnalysisContext analysisContext) {
                // 读完一行进行回调
                System.out.println(o);

            }
            @Override
            public void doAfterAllAnalysed(AnalysisContext analysisContext) {
                // 读完全部进行回调 通知文件读取完毕
                System.out.println("读取完毕....");
            }
        });
        // 构建读取器
        ExcelReader reader = readerBuilder.build();
        // 读取数据
        reader.readAll();
        // 读取完毕
        reader.finish();
    }
}

完成…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值