Java POI 读取Excel写入数据
在日常工作和生活中,我们经常会遇到需要读取Excel文件并将数据写入其中的场景。Java POI是一个强大的Java库,它提供了一组API,用于操作Microsoft Office格式的文件,其中包括Excel文件。本文将介绍如何使用Java POI库来读取Excel文件并将数据写入其中。
准备工作
在开始之前,我们首先需要准备以下工作:
- Java开发环境
- Java POI库
你可以从Java官方网站下载并安装Java开发环境。而Java POI库可以从官方网站或通过Maven等构建工具引入项目中。
读取Excel文件
首先,我们需要导入POI库中的相关类:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
然后,我们可以使用以下代码来读取Excel文件:
try {
// 创建工作簿
Workbook workbook = new XSSFWorkbook("path/to/excel/file.xlsx");
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 遍历每一个单元格
for (Cell cell : row) {
// 获取单元格的值并输出
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t");
break;
default:
System.out.print("\t");
}
}
System.out.println();
}
// 关闭工作簿
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
上述代码首先创建了一个Workbook
对象来表示Excel文件,并通过XSSFWorkbook
类指定了Excel文件的路径。然后,通过调用getSheetAt(0)
方法获取第一个工作表,并使用for-each
循环遍历每一行和每一个单元格。在遍历过程中,我们可以根据单元格的类型使用getCellType()
方法来获取单元格的值。最后,我们关闭工作簿以释放资源。
写入Excel文件
要将数据写入Excel文件,我们可以使用以下代码:
try {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 创建数据行
Row row = sheet.createRow(0);
// 创建单元格并设置值
Cell cell1 = row.createCell(0);
cell1.setCellValue("Name");
Cell cell2 = row.createCell(1);
cell2.setCellValue("Age");
// 创建数据行
Row row2 = sheet.createRow(1);
// 创建单元格并设置值
Cell cell3 = row2.createCell(0);
cell3.setCellValue("John");
Cell cell4 = row2.createCell(1);
cell4.setCellValue(25);
// 保存工作簿
FileOutputStream outputStream = new FileOutputStream("path/to/new/excel/file.xlsx");
workbook.write(outputStream);
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
上述代码首先创建了一个新的Workbook
对象,并通过createSheet("Sheet1")
方法创建了一个名为"Sheet1"的工作表。然后,我们使用createRow()
方法创建了一个数据行,并使用createCell()
方法创建了单元格,并设置了相应的值。最后,我们使用FileOutputStream
将工作簿保存到指定的文件路径,并关闭工作簿。
流程图
下面是使用mermaid语法绘制的读取Excel文件和写入Excel文件的流程图。
flowchart TD;
Start-->读取Excel文件;
读取Excel文件-->遍历每一行和每一个单元格;
遍历每一行和每一个单元格-->获取单元格的值并输出;
获取单元格的值并输出-->结束;
Start-->写入Excel文件;
写入Excel文件-->创建工作簿;
创建工作簿-->创建工作表;
创建工作表-->创建数据行;
创建数据行-->创建单元格并设置值;
创建单元格