用Java生成excel表格并填入数据

在实际开发中,有时候我们需要根据某个excel模板文件生成新的excel表格,并填入特定的数据。这时候,我们可以使用Java来实现这个功能。在本篇文章中,我们将介绍如何利用Java读取excel模板文件,并将数据填入excel表格中。

准备工作

在开始之前,我们需要准备好以下工具和库:

  1. Apache POI库:用于操作excel文件
  2. Excel模板文件:作为生成excel表格的基础
  3. JDK和Maven:用于编译和构建项目

首先,我们需要在pom.xml文件中添加Apache POI库的依赖:

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

读取excel模板文件

我们首先需要读取excel模板文件,这个文件可以作为我们生成新excel表格的基础。假设我们有一个名为template.xlsx的excel模板文件,其中包含了我们需要填入数据的表格结构。

接下来,我们可以通过以下代码来读取模板文件:

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import java.io.FileInputStream;
import java.io.InputStream;

public class ExcelTemplateReader {

    public Workbook readTemplate(String filePath) {
        try (InputStream inputStream = new FileInputStream(filePath)) {
            Workbook workbook = WorkbookFactory.create(inputStream);
            return workbook;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

在上面的代码中,我们定义了一个ExcelTemplateReader类,其中包含一个readTemplate方法用于读取excel模板文件。

填入数据并生成新excel表格

一旦我们读取了excel模板文件,接下来就可以填入数据并生成新的excel表格了。假设我们有一些数据需要填入模板文件中的表格中。

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import java.io.FileOutputStream;

public class ExcelDataFiller {

    public void fillData(Workbook workbook, String outputPath) {
        Sheet sheet = workbook.getSheetAt(0); // 假设我们要填入的数据在第一个sheet中

        Row row = sheet.getRow(1); // 假设我们要填入的数据从第二行开始
        Cell cell = row.getCell(0); // 假设我们要填入的数据从第一列开始
        cell.setCellValue("数据1");

        row = sheet.getRow(2);
        cell = row.getCell(1);
        cell.setCellValue("数据2");

        // 还可以继续填入其他数据

        try (FileOutputStream fileOut = new FileOutputStream(outputPath)) {
            workbook.write(fileOut);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们定义了一个ExcelDataFiller类,其中包含一个fillData方法用于填充数据并生成新的excel表格。

整合代码并生成excel表格

最后,我们可以将ExcelTemplateReaderExcelDataFiller整合在一起,实现根据excel模板文件生成新excel表格并填入数据的功能。

public class ExcelGenerator {

    public static void main(String[] args) {
        ExcelTemplateReader templateReader = new ExcelTemplateReader();
        Workbook workbook = templateReader.readTemplate("template.xlsx");

        if (workbook != null) {
            ExcelDataFiller dataFiller = new ExcelDataFiller();
            dataFiller.fillData(workbook, "output.xlsx");
        }
    }
}

在上面的代码中,我们首先读取excel模板文件,然后填入数据并生成新的excel表格。最终,生成的excel表格将保存在output.xlsx文件中。

总结

通过本篇文章的介绍,我们学习了如何利用Java根据excel模板文件生成新的excel表格并填入数据。这个功能在实际开发中经常会用到,希望本文对您有所帮助。


**引用形式的描述信息: