在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]);
}
}
}
}
代码解释
-
读取模板:通过
FileInputStream
读取指定路径的Excel模板文件,并使用XSSFWorkbook
创建工作簿对象。 -
填充数据:为了将数据填充到不同的Sheet中,我们定义了一个
fillSheetWithData
方法。这个方法接受一个Sheet
对象和一个二维字符串数组(表示要填充的数据),并将数据逐行写入对应的单元格。 -
写入数据:在所有数据填充完成后,通过
FileOutputStream
将修改后的工作簿保存到指定的输出路径。
小结
使用Apache POI库可以方便地将数据导入到Excel模板中,并支持多个Sheet的处理。上述示例展示了如何简单地将二维数组数据写入到Excel中,您可以根据需要进一步扩展功能,例如读取数据库数据、格式化单元格、调整列宽等。这为利用Excel作为数据存储或展示工具提供了便利。