您的位置:

深入解析Hutool Excel

一、Hutool Excel是什么

Hutool Excel是Hutool工具包中的一个Excel操作类库,提供了众多读写Excel功能,支持xls和xlsx格式的文件操作。

相比Java自带的POI类库,Hutool Excel的API更加简洁易用,而且功能更加强大。在Excel的数据导入导出功能上,Hutool Excel尤为突出,其提供的ExcelWriter支持高效的追加写入,可以方便的处理海量数据。

二、Hutool Excel的常用API

1. 读取Excel数据

    //读取Excel
    ExcelReader reader = ExcelUtil.getReader("classpath:test.xlsx");
    List
   > readAll = reader.read();
    readAll.forEach(System.out::println);

通过ExcelUtil.getReader()方法获取ExcelReader对象,然后调用read()方法即可读取Excel中所有数据,返回值是一个二维数组

    //读取第一个Sheet的数据
    ExcelReader reader = ExcelUtil.getReader("classpath:test.xlsx");
    List
      > read = reader.read(0);
    read.forEach(System.out::println);

如果只想读取Excel中的某一个Sheet,可以在read()方法中指定Sheet的索引或者名称

2. 写入Excel数据

    //创建Workbook
    Workbook workbook = ExcelUtil.getWorkbook();
    Sheet sheet = workbook.createSheet("sheet1");
    //写入数据
    ExcelWriter writer = ExcelUtil.getWriter(sheet);
    writer.writeCellValue(0, 0, "姓名");
    writer.writeCellValue(0, 1, "年龄");
    writer.writeCellValue(1, 0, "张三");
    writer.writeCellValue(1, 1, 18);
    writer.writeCellValue(2, 0, "李四");
    writer.writeCellValue(2, 1, 20);
    //保存Excel文件
    writer.flush(WorkbookUtil.getOrCreateWorkbook("test.xlsx"));
    writer.close();

通过ExcelUtil.getWorkbook()方法获取Workbook对象,然后通过Workbook对象创建Sheet对象,再通过ExcelUtil.getWriter()方法获取ExcelWriter对象,即可将数据写入到Excel中

3. 追加写入Excel数据

    //创建Workbook
    Workbook workbook = ExcelUtil.getWorkbook();
    Sheet sheet = workbook.createSheet("sheet1");
    //写入表头
    ExcelWriter writer = ExcelUtil.getWriter(sheet);
    writer.writeCellValue(0, 0, "姓名");
    writer.writeCellValue(0, 1, "年龄");
    //追加数据
    writer.setColumnWidth(0, 20);
    writer.setColumnWidth(1, 10);
    writer.autoSizeColumn(2, true);
    for (int i = 1; i <= 100000; i++) {
        writer.writeCellValue(i, 0, "张三" + i);
        writer.writeCellValue(i, 1, i);
    }
    //保存Excel文件
    writer.flush(WorkbookUtil.getOrCreateWorkbook("test.xlsx"));
    writer.close();

通过ExcelWriter对象的setColumnWidth()方法和autoSizeColumn()方法设置列宽,并且通过for循环追加数据,最后保存Excel文件即可。注意,追加写入数据需要使用flush()方法而不是close()方法,否则之前写入的数据会被清空

三、Hutool Excel的优势

1. API简单易用

相比Java自带的POI类库,Hutool Excel的API更加简单易用,在使用上更加友好,可以让开发人员更加专注于业务逻辑的开发,从而提高效率。

2. 高效的追加写入

Hutool Excel提供的ExcelWriter支持高效的追加写入,可以方便的处理大量数据,避免了使用POI类库时因为缓存问题导致的内存溢出问题。

3. 支持xls和xlsx格式文件

Hutool Excel支持xls和xlsx格式文件的读写操作,可以满足不同的业务场景需求。

4. 生动形象的例子

通过生动的例子解释Hutool Excel的使用方法,对于新手程序员而言非常友好。

四、小结

Hutool Excel是一个功能强大而且易于使用的Excel操作工具类库,在实际开发中,可以简化开发人员的工作,提高开发效率。在Excel读写海量数据方面,Hutool Excel优于Java自带的POI类库。

关于Hutool Excel的更多用法,可以参考官方文档:https://www.hutool.cn/docs/#/poi/Excel%E5%B7%A5%E5%85%B7%E7%B1%BB%E5%BA%93-ExcelUtil

文章目录
顶部