返回

用POI和EasyExcel实现Excel导入和导出

后端

随着数字化进程的推进,在开发中经常会涉及到Excel的处理。常见的需求场景包括:

  • 将用户信息导出为Excel表格(导出数据)
  • 从Excel表格中导入用户信息(导入数据)

本文将详细介绍如何使用POI和EasyExcel实现Excel的导入和导出功能。

一、使用POI导出Excel

POI(Poor Obfuscation Implementation)是一个开源的Java库,可以读写Microsoft Office格式的文档,包括Excel、Word和PowerPoint。

1. 导入依赖

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.2</version>
</dependency>

2. 导出用户信息

// 创建一个新的Excel工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建一个新的工作表
XSSFSheet sheet = workbook.createSheet("用户信息");

// 设置表头
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("姓名");
headerRow.createCell(1).setCellValue("年龄");
headerRow.createCell(2).setCellValue("地址");

// 填充数据
List<User> users = getUserList();
for (int i = 0; i < users.size(); i++) {
    Row dataRow = sheet.createRow(i + 1);
    dataRow.createCell(0).setCellValue(users.get(i).getName());
    dataRow.createCell(1).setCellValue(users.get(i).getAge());
    dataRow.createCell(2).setCellValue(users.get(i).getAddress());
}

// 写入到文件中
FileOutputStream outputStream = new FileOutputStream("用户信息.xlsx");
workbook.write(outputStream);
outputStream.close();

二、使用EasyExcel导入Excel

EasyExcel是一个基于POI的开源Java库,可以轻松地读写Excel文件。

1. 导入依赖

<dependency>
    <groupId>com.alibaba.easyexcel</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.1.6</version>
</dependency>

2. 导入用户信息

// 读入用户信息
EasyExcel.read(new FileInputStream("用户信息.xlsx"), User.class, new DataListener() {
    @Override
    public void invoke(Object data, EasyExcelContext context) {
        // 这里可以获取到导入的数据对象
        User user = (User) data;
        // 这里可以对导入的数据进行业务处理
    }
})
.sheet()
.doRead();

三、总结

本文介绍了如何使用POI和EasyExcel实现Excel导入和导出功能。POI更适用于自定义导出格式的场景,而EasyExcel更适用于便捷高效的导入导出操作。希望这篇文章能够帮助开发者快速上手Excel处理功能。