目录
一 POI简介
POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
POI的主要功能是可以用Java操作Microsoft Office的相关文件,但是一般我们都是用来操作Excel相关文件。
官网链接:Apache POI - the Java API for Microsoft Documents
二 接口介绍
HSSFWorkbook | 操作.xls文档 |
XSSFWorkbook | 操作.xlsx文档 |
HWPF | 操作Word文档 |
HSLF | 操作PPT文档 |
HDGF | 操作VIsio文档 |
三 写Excel表格
1.导入依赖
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2.创建Excel文件并写入
- 创建后缀名为.xlsx文件,应使用XSSFWorkbook
- 创建后缀名为.xls文件,应使用HSSFWorkbook
public void testWrite() throws IOException {
Workbook workbook= new XSSFWorkbook();
Sheet sheet = workbook.createSheet("kobe");
for (int i=0;i<2;i++){
Row row = sheet.createRow(i);
for (int j=0;j<2;j++){
Cell cell = row.createCell(j);
cell.setCellValue("科比");
}
}
String writePath="writed.xlsx";
FileOutputStream fileOutputStream=new FileOutputStream(writePath);
workbook.write(fileOutputStream);
fileOutputStream.close();
}
四 读Excel表格
public void testRead() throws IOException {
String path="writed.xlsx";
Workbook workbook=new XSSFWorkbook(new FileInputStream(path));
Sheet sheet = workbook.getSheet("kobe");
int firstRowNum = sheet.getFirstRowNum();
int lastRowNum = sheet.getLastRowNum();
for (int i=firstRowNum;i<=lastRowNum;i++){
Row row = sheet.getRow(i);
short firstCellNum = row.getFirstCellNum();
short lastCellNum = row.getLastCellNum();
for (int j=firstCellNum;j<lastCellNum;j++){
Cell cell = row.getCell(j);
System.out.println(cell.getStringCellValue()+",");
}
System.out.println();
}
}
另外,在其他博客中看到,当写表格的时候,如果数据量很大,可以选择使用SXSSFWorkbook,可以避免OOM问题。