在Java中,我们可以使用Apache POI库来处理Excel文件的读取和写入。Apache POI是一个强大的开源库,能够帮助我们创建、修改和读取Microsoft Office格式的文件,包括Excel。本文将介绍如何将数据导入到指定的Excel模板中,处理多个Sheet页的情况。

使用Apache POI导入数据

首先,确保您已经在项目中添加了Apache POI的依赖。如果您使用Maven,可以在pom.xml文件中添加如下依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.xmlbeans</groupId>
    <artifactId>xmlbeans</artifactId>
    <version>5.0.2</version>
</dependency>

示例代码

以下是一个示例代码,展示如何将数据导入到一个包含多个Sheet的Excel模板:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelImporter {

    public static void main(String[] args) {
        String templatePath = "path/to/template.xlsx";
        String outputPath = "path/to/output.xlsx";

        try {
            // 1. 读取模板
            FileInputStream fis = new FileInputStream(templatePath);
            Workbook workbook = new XSSFWorkbook(fis);

            // 2. 填充数据到第一个Sheet
            Sheet sheet1 = workbook.getSheetAt(0); // 获取第一个Sheet
            fillSheetWithData(sheet1, new String[][]{
                    {"姓名", "年龄", "性别"},
                    {"张三", "25", "男"},
                    {"李四", "30", "女"}
            });

            // 3. 填充数据到第二个Sheet
            Sheet sheet2 = workbook.getSheetAt(1); // 获取第二个Sheet
            fillSheetWithData(sheet2, new String[][]{
                    {"产品", "价格"},
                    {"产品A", "100"},
                    {"产品B", "200"}
            });

            // 4. 写入到新的Excel文件
            FileOutputStream fos = new FileOutputStream(outputPath);
            workbook.write(fos);
            fos.close();
            workbook.close();
            fis.close();

            System.out.println("数据导入成功!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void fillSheetWithData(Sheet sheet, String[][] data) {
        for (int i = 0; i < data.length; i++) {
            Row row = sheet.createRow(i);
            for (int j = 0; j < data[i].length; j++) {
                Cell cell = row.createCell(j);
                cell.setCellValue(data[i][j]);
            }
        }
    }
}

代码解释

  1. 读取模板:通过FileInputStream读取指定路径的Excel模板文件,并使用XSSFWorkbook创建工作簿对象。

  2. 填充数据:为了将数据填充到不同的Sheet中,我们定义了一个fillSheetWithData方法。这个方法接受一个Sheet对象和一个二维字符串数组(表示要填充的数据),并将数据逐行写入对应的单元格。

  3. 写入数据:在所有数据填充完成后,通过FileOutputStream将修改后的工作簿保存到指定的输出路径。

小结

使用Apache POI库可以方便地将数据导入到Excel模板中,并支持多个Sheet的处理。上述示例展示了如何简单地将二维数组数据写入到Excel中,您可以根据需要进一步扩展功能,例如读取数据库数据、格式化单元格、调整列宽等。这为利用Excel作为数据存储或展示工具提供了便利。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部