本文最后更新于97 天前,其中的信息可能已经过时,如有错误请发送邮件到z18096561915@outlook.com
介绍
Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI在 Java 程
序中对Miscrosoft Office各种文件进行读写操作。
-般情况下,POI都是用于操作 Excel 文件。
Apache POl 的应用场景:
- 银行网银系统导出交易明细
- 各种业务系统导出Excel报表
- 批量导入业务数据
入门案例
Apache Pol的maven坐标
<dependency>
<groupId>org.apache.poi</groupId>
<artifactIdypoi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
代码实现
package test;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* 使用POI操作Excel文件
*/
public class POITest {
/**
* 写入Excel文件
*/
public static void write() throws Exception {
//在内存中创建一个新的excel文件
XSSFWorkbook excel = new XSSFWorkbook();
//创建一个sheet页
XSSFSheet sheet = excel.createSheet("info");
//创建行
XSSFRow row = sheet.createRow(0);
//创建单元格并且写入数据
row.createCell(0).setCellValue("姓名");
row.createCell(1).setCellValue("年龄");
//创建一个新行
row = sheet.createRow(1);
//创建单元格并且写入数据
row.createCell(0).setCellValue("张三");
row.createCell(1).setCellValue("20");
//创建一个新行
row = sheet.createRow(2);
//创建单元格并且写入数据
row.createCell(0).setCellValue("李四");
row.createCell(1).setCellValue("22");
FileOutputStream out = new FileOutputStream(new File("G:\\info.xlsx"));
//写入到文件中
excel.write(out);
//关闭流
out.close();
excel.close();
}
/**
* 读取Excel文件
*/
public static void read() throws Exception {
FileInputStream in = new FileInputStream(new File("G:\\info.xlsx"));
//读取文件
XSSFWorkbook excel = new XSSFWorkbook(in);
//获取第一个sheet页
XSSFSheet sheet = excel.getSheetAt(0);
//获取最后一行的行号
int lastRowNum = sheet.getLastRowNum();
for (int i = 0; i <= lastRowNum; i++) {
//获取第i行
XSSFRow row = sheet.getRow(i);
//获取第i行的第0列单元格的值
String name = row.getCell(0).getStringCellValue();
//获取第i行的第1列单元格的值
String age = row.getCell(1).getStringCellValue();
System.out.println(name + " " + age);
}
//关闭流
excel.close();
in.close();
}
public static void main(String[] args) throws Exception {
write();
read();
}
}