引入依赖
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>poi-example</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- Apache POI核心库,支持Excel 97-2003格式(.xls) -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<!-- Apache POI OOXML库,支持Excel 2007及更高版本格式(.xlsx) -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<!-- 用于处理POI的XML schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<!-- XMLBeans,用于处理Excel 2007及更高版本格式的文件 -->
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.1.1</version>
</dependency>
</dependencies>
</project>
生成excel文件
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelWriterExample {
public static void main(String[] args) {
// 1. 创建一个新的XSSFWorkbook对象,表示一个Excel工作簿
Workbook workbook = new XSSFWorkbook();
// 2. 在工作簿中创建一个新的工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 3. 在工作表中创建一行
Row row = sheet.createRow(0);
// 4. 在行中创建一个单元格
Cell cell = row.createCell(0);
// 5. 设置单元格的值
cell.setCellValue("Hello, POI!");
// 6. 使用FileOutputStream将工作簿写入到文件中
try (FileOutputStream outputStream = new FileOutputStream("example.xlsx")) {
workbook.write(outputStream); // 将工作簿的内容写入输出流
} catch (IOException e) {
e.printStackTrace(); // 处理IO异常
}
}
}
读取excel文件
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelReaderExample {
public static void main(String[] args) {
// 1. 使用FileInputStream读取现有的Excel文件
try (FileInputStream inputStream = new FileInputStream("example.xlsx")) {
// 2. 创建XSSFWorkbook对象以读取该文件
Workbook workbook = new XSSFWorkbook(inputStream);
// 3. 获取工作簿中的第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 4. 获取工作表中的第一行
Row row = sheet.getRow(0);
// 5. 获取行中的第一个单元格
Cell cell = row.getCell(0);
// 6. 获取单元格的值并打印出来
System.out.println("Cell Value: " + cell.getStringCellValue());
} catch (IOException e) {
e.printStackTrace(); // 处理IO异常
}
}
}