使用POI读取Excel模板并向固定表格里填写数据详解

在日常的工作中,经常会遇到需要读取Excel模板并向固定表格里填写数据的需求。Java中有一个非常强大的开源库POI,可以帮助我们实现这样的功能。本文将详细介绍如何使用POI库来读取Excel模板并向固定表格里填写数据。

什么是POI

Apache POI是一个用于操作Microsoft Office格式文件(如doc、docx、xls、xlsx等)的Java API。它允许Java程序读取和写入Excel文件,并提供了丰富的API来操作Excel文件的各种元素,如单元格、行、列等。

准备工作

在开始之前,我们需要引入POI库。可以在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.4</version>
</dependency>

读取Excel模板

首先,我们需要读取Excel模板文件并找到要填写数据的固定表格。假设我们的Excel模板文件为template.xlsx,固定表格在第一个Sheet中,第二行开始,第一列为姓名,第二列为年龄。

try (FileInputStream fis = new FileInputStream("template.xlsx");
     XSSFWorkbook workbook = new XSSFWorkbook(fis)) {
    XSSFSheet sheet = workbook.getSheetAt(0);

    // 从第二行开始遍历
    for (int i = 1; i <= sheet.getLastRowNum(); i++) {
        XSSFRow row = sheet.getRow(i);
        String name = row.getCell(0).getStringCellValue();
        int age = (int) row.getCell(1).getNumericCellValue();

        // 处理数据...
    }
} catch (IOException e) {
    e.printStackTrace();
}

填写数据到固定表格

接下来,我们可以通过POI库向Excel固定表格里填写数据。假设我们有一个名为dataList的List,其中存储了要填写的数据。

List<Map<String, Object>> dataList = new ArrayList<>();
// 假设 dataList 中有数据

try (FileInputStream fis = new FileInputStream("template.xlsx");
     XSSFWorkbook workbook = new XSSFWorkbook(fis)) {
    XSSFSheet sheet = workbook.getSheetAt(0);

    int rowIndex = 1; // 从第二行开始填写数据
    for (Map<String, Object> data : dataList) {
        XSSFRow row = sheet.getRow(rowIndex);
        if (row == null) {
            row = sheet.createRow(rowIndex);
        }

        row.getCell(0).setCellValue((String) data.get("name"));
        row.getCell(1).setCellValue((int) data.get("age"));

        rowIndex++;
    }

    try (FileOutputStream fos = new FileOutputStream("output.xlsx")) {
        workbook.write(fos);
    }
} catch (IOException e) {
    e.printStackTrace();
}

通过以上代码,我们可以将数据填写到Excel固定表格中,并将结果保存到output.xlsx文件中。

总结

本文介绍了如何使用POI库读取Excel模板并向固定表格里填写数据。通过POI库,我们可以方便地操作Excel文件,实现各种复杂的数据处理需求。希望本文能对你有所帮助。

gantt
    title 使用POI读取Excel模板并填写数据流程
    section 准备工作
    引入依赖:done, 2022-01-01, 2022-01-02
    section 读取Excel模板
    读取Excel模板文件: done, 2022-01-02, 2022-01-03
    找到固定表格: done, 2022-01-03, 2022-01-04
    section 填写数据到固定表格
    填写数据到Excel: done, 2022-01-04, 2022-01-05
    保存结果到文件: done, 2022-01-05, 2022-01-06

通过以上步骤,我们可以实现对Excel模板的读取和数据填写,为业务处理提供了便利。希望本文对大家在使用POI库时有所帮助。