佛曰:我不如地狱谁入地狱
Apache POI
Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。
Apache POI可以操作几乎office系列所有的软件,提供了非常丰富的api,但最常用的是excel报表和批量导入,还有word自动生成报告。本篇以操作excel为例,说明Apache POI的简单用法。
入门(读取excel)
一、jar包(maven坐标):
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
二、创建一个测试类:
package pers.buyusan.utils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.IOException;
/**
* @author buyusan
* @Description
* @date 2019-08-01 16:31
**/
public class POIDemo {
public static void main(String[] args) throws IOException {
//创建工作簿
XSSFWorkbook workbook = new XSSFWorkbook("D:\\hello.xlsx");
//获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
XSSFSheet sheet = workbook.getSheetAt(0);
//遍历工作表获得行对象
for (Row row : sheet) {
//遍历行对象获取单元格对象
for (Cell cell : row) {
//获得单元格中的值
String value = cell.getStringCellValue();
System.out.println(value);
}
System.out.println("============");
}
workbook.close();
}
}
由于我们在读取路径的时候用了"D:\\hello.xlsx",所以我们在D盘目录下创建一个xlsx文件(xls):
内容如图:

三、运行测试类查看结果:

结果中的异常是由于我在运行程序时文件正在打开状态。
关闭文件后运行就不会报错了。
通过Apache POI读取excel的案例就完成了。
接下来通过POI进行excel的写操作。与读操作类似。
写出到excel
一、jar包(maven坐标)
同上
二、创建一个测试类:
package pers.buyusan.utils;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author buyusan
* @Description
* @date 2019-08-01 16:31
**/
public class POIDemo {
public static void main(String[] args) throws IOException {
//在内存中创建一个Excel文件
XSSFWorkbook workbook = new XSSFWorkbook();
//创建工作表,指定工作表名称
XSSFSheet sheet = workbook.createSheet("fxm");
//创建行,0表示第一行
XSSFRow row = sheet.createRow(0);
//创建单元格,0表示第一个单元格
row.createCell(0).setCellValue("编号");
row.createCell(1).setCellValue("名称");
row.createCell(2).setCellValue("年龄");
XSSFRow row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("1");
row1.createCell(1).setCellValue("不与三");
row1.createCell(2).setCellValue("17");
XSSFRow row2 = sheet.createRow(2);
row2.createCell(0).setCellValue("2");
row2.createCell(1).setCellValue("小米");
row2.createCell(2).setCellValue("18");
//通过输出流将workbook对象下载到磁盘
FileOutputStream out = new FileOutputStream("D:\\buyusan.xlsx");
workbook.write(out);
out.flush();
out.close();
workbook.close();
}
}
三、运行测试类查看结果:

程序正常结束,去d盘找到buyusan.xlsx文件:

成功运行。
工具类
一种比较常用的方式是将数据写入excel文件,然后通过POI读取数据,因此在开发中可以将这类功能根据需求写成工具类,通过静态方法调用。由于不同场景需要的工具类都不同,具体问题需要具体分析。随着对POI的深入了解,通过java操作office将不再是问题。
Apache POI是Java中用于操作Microsoft Office格式档案的API,特别适合处理Excel文件。本文介绍了如何入门Apache POI,包括读取Excel的步骤:添加maven坐标,创建测试类并处理可能出现的异常,以及如何写入Excel。最后讨论了将这些操作封装为工具类的实用性。

1490

被折叠的 条评论
为什么被折叠?



