📅  最后修改于: 2023-12-03 15:36:35.165000             🧑  作者: Mango
Apache POI是一个Java库,提供API来操作Microsoft Office格式的文件,包括Excel、Word、PowerPoint等。在本文中,我们将使用Apache POI来读取和写入Excel文件。
在使用Apache POI之前,需要向项目中添加相关依赖。在Maven项目中,可以通过向pom.xml文件添加如下依赖来实现:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
说明:poi-ooxml是POI的一个子项目,提供对Office OpenXML格式文件(如XLSX、DOCX)的支持。
我们首先演示如何读取已经存在的Excel文件。以下是一个读取示例的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelReader {
public static void main(String[] args) throws IOException {
// 打开Excel文件
FileInputStream file = new FileInputStream(new File("example.xlsx"));
// 创建一个工作簿对象
Workbook workbook = new XSSFWorkbook(file);
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 遍历每一列
for (Cell cell : row) {
// 获取单元格的值
String cellValue = cell.getStringCellValue();
System.out.print(cellValue + "\t");
}
System.out.println();
}
// 关闭文件输入流
file.close();
}
}
说明:上述代码使用了Java IO API来打开Excel文件,然后使用XSSFWorkbook类创建工作簿对象。Workbook接口提供了一组操作Excel工作簿的API,而Sheet和Row接口则提供了操作工作表和行的API。
输出结果将显示Excel文件中第一个工作表中的所有值。
接下来是一个写入Excel文件的示例。以下是一个写入Excel文件的代码:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelWriter {
public static void main(String[] args) throws IOException {
// 创建一个工作簿对象
Workbook workbook = new XSSFWorkbook();
// 创建一个工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 在工作表中创建一行
Row row = sheet.createRow(0);
// 在行中创建单元格并设置值
Cell cell1 = row.createCell(0);
cell1.setCellValue("姓名");
Cell cell2 = row.createCell(1);
cell2.setCellValue("年龄");
Cell cell3 = row.createCell(2);
cell3.setCellValue("城市");
// 在工作表中添加多行数据
for (int i = 1; i <= 3; i++) {
Row newRow = sheet.createRow(i);
Cell cellName = newRow.createCell(0);
cellName.setCellValue("张三" + i);
Cell cellAge = newRow.createCell(1);
cellAge.setCellValue(i*5);
Cell cellCity = newRow.createCell(2);
cellCity.setCellValue("北京");
}
// 保存工作簿
FileOutputStream file = new FileOutputStream(new File("example.xlsx"));
workbook.write(file);
file.close();
System.out.println("Excel文件已创建!");
}
}
说明:上述代码使用了Java IO API来创建Excel文件并打开它。然后我们使用XSSFWorkbook类创建工作簿对象并创建一个工作表。接下来我们向工作表中插入一行标题和三行数据。最后,我们调用Workbook对象的write()方法将数据写入到文件中。
本文演示了如何使用Apache POI在Java中读取和写入Excel文件。通过这些例子,你可以了解如何操作Excel文件,以及如何使用POI来进行这些操作。
更多关于Apache POI的信息,你可以查阅Apache POI官方网站。