使用Java POI库操作Excel文件
简介
Java POI(Poor Obfuscation Implementation)是一个用于操作各种Office文档(如Excel、Word和PowerPoint)的Java库。它提供了一组API,可以让我们读取、写入和编辑这些文档。
本文将介绍如何使用Java POI库操作Excel文件。首先,我们将学习如何读取现有的Excel文件,然后学习如何创建和写入新的Excel文件。
安装与配置
要使用Java POI库,需要在项目中添加相应的依赖。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
读取Excel文件
首先,我们需要创建一个Workbook
对象,它代表整个Excel文档。根据Excel文件的格式,我们可以选择创建HSSFWorkbook
(用于.xls
格式)或XSSFWorkbook
(用于.xlsx
格式)。
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelReader {
public static void main(String[] args) {
try (Workbook workbook = new XSSFWorkbook("example.xlsx")) {
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
CellValue cellValue = evaluate(cell);
if (cellValue != null) {
System.out.println(cellValue.getStringValue());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static CellValue evaluate(Cell cell) {
FormulaEvaluator evaluator = cell.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator();
return evaluator.evaluate(cell);
}
}
在上述代码中,我们首先创建了一个XSSFWorkbook
对象,并指定要读取的Excel文件路径。然后,我们获取第一个工作表(Sheet
对象),并遍历每一行和每一个单元格。通过evaluate
方法,我们可以获取单元格的值(包括公式的计算结果)。
创建和写入Excel文件
要创建新的Excel文件并写入数据,我们可以使用以下代码:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelWriter {
public static void main(String[] args) {
try (Workbook workbook = new XSSFWorkbook()) {
Sheet sheet = workbook.createSheet("Sheet1");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello, World!");
try (FileOutputStream fileOutputStream = new FileOutputStream("example.xlsx")) {
workbook.write(fileOutputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
上述代码首先创建一个XSSFWorkbook
对象,并创建一个名为"Sheet1"的工作表。然后,我们创建一个行和一个单元格,并在单元格中设置值为"Hello, World!"。最后,我们将工作簿写入到指定的文件中。
序列图
下面是使用Java POI库读取Excel文件的序列图:
sequenceDiagram
participant Client
participant JavaPOI
participant ExcelFile
Note over Client: 创建ExcelReader对象
Client->>+JavaPOI: 创建XSSFWorkbook对象
JavaPOI->>-ExcelFile: 载入example.xlsx文件
loop 遍历每个单元格
JavaPOI->>-ExcelFile: 获取单元格的值
ExcelFile-->>-JavaPOI: 单元格的值
JavaPOI-->>-Client: 打印单元格的值
end
类图
下面是Java POI库的类图:
classDiagram
class Workbook
class Sheet
class Row
class Cell
class CellValue
class FormulaEvaluator
class XSSFWorkbook
class FileOutputStream
Workbook <|-- XSSFWorkbook
FileOutputStream <-- Workbook
FormulaEvaluator <-- Workbook
CellValue <-- FormulaEvaluator
Sheet <-- Workbook
Row <-- Sheet
Cell <-- Row
总结
本文介绍了如何使用Java POI库来读取和写入Excel文件。通过使用Java POI,我们可以轻松地操作Excel文件,对数据进行读取、写入和编辑。希望这篇文章对你有所帮助!