EasyExcel和Poi优缺点对比

1. easyexcel的优点

//封装工作簿对象
ExcelReaderBuilder workBook = EasyExcel.read
        ("d:\\杭州黑马在线202003班学员信息.xls", Student.class, new StudentReadListener());
// 封装工作表
ExcelReaderSheetBuilder sheet1 = workBook.sheet();
// 读取
sheet1.doRead();

//继承监听器的接口AnalysisEventListener,重写里面的两个方法invoke以及doAfterAllAnalysed
public class StudentReadListener extends AnalysisEventListener<Student> {
    // 每读一样,会调用该invoke方法一次
    @Override
    public void invoke(Student data, AnalysisContext context) {
        System.out.println("data = " + data);
        log.info(data + "保存成功");
    }

    // 全部读完之后,会调用该方法
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // TODO......
    }
}

1.2.写操作

public class StudentWriteDemo {
    public static void main(String[] args) {

        List<Student> students = initData();
        ExcelWriterBuilder workBook = EasyExcel.write("d:\\杭州黑马学员表.xlsx", Student.class);

        // sheet方法参数: 工作表的顺序号(从0开始)或者工作表的名字
        workBook.sheet().doWrite(students);
    }

    private static List<Student> initData() {
        ArrayList<Student> students = new ArrayList<Student>();
        Student data = new Student();
        for (int i = 0; i < 10; i++) {
            data.setName("杭州黑马学号0" + i);
            data.setBirthday(new Date());
            data.setGender("男");
            students.add(data);
        }
        return students;
    }
}

  • 基于SAX的事件处理机制,适合处理大文件,不会造成内存溢出。
  • 定制导出,可以根据不同的参数导出不同的Excel。
  • 支持sheet分页。
  • 提供了更加灵活的表头,支持表头合并。
  • 性能更好,尤其是大数据量的情况下。
  • 可以兼容老版本的poi,无需修改原来的代码。

    1.1读操作

  • 首先创建一个导出数据的实体类,导入依赖
  • 调用EasyExcelAPI读取的 Excel 文件的实体类,主要是操作流的应用
  • 读取Excel的监听器,用于处理读取产生的数据
  • 先创建一个实体类
  • 写入文件

2. easyexcel的缺点

  • 无法直接导出带有颜色的Excel。
  • 无法直接导出Excel的公式。
  • 导出数据时,必须先进行查询,然后才能导出。

3. poi的优点

  • 功能比较齐全,可以支持各种操作,如读取、写入、加密、解密等。
  • 支持的Excel版本比较多,可以支持95、97、2007等不同版本的Excel。
  • 社区比较完善,有完整的文档和示例。

4. poi的缺点

  • 在处理大数据量时,内存占用比较大,可能会出现内存溢出的情况。
  • 写入Excel的速度比较慢。
  • 对于一些复杂的Excel样式,处理起来比较困难。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值