Apache POI

POI介绍

复制代码
Apache POI是用Java编写的免费开源的跨平台的Java API,
Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,
其中使用最多的就是使用POI操作Excel文件。
XML 复制代码
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>

POI结构:

XML 复制代码
HSSF - 提供读写Microsoft Excel XLS格式档案的功能
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能
HWPF - 提供读写Microsoft Word DOC格式档案的功能
HSLF - 提供读写Microsoft PowerPoint格式档案的功能
HDGF - 提供读Microsoft Visio格式档案的功能
HPBF - 提供读Microsoft Publisher格式档案的功能
HSMF - 提供读Microsoft Outlook格式档案的功能

入门案例

从Excel文件读取数据

使用POI可以从一个已经存在的Excel文件中读取数据

java 复制代码
public class POITest {
    //使用POI读取Excel中的数据
    @Test
    public void test1() throws Exception {
        //加载指定文件,创建一个Excel(工作簿)
        XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("C:\\poitest.xlsx")));
        //读取Excel文件中第一个sheet标签项
        XSSFSheet sheet = excel.getSheetAt(0);
        //遍历sheet标签项,获取每一行数据
        for (Row row : sheet) {
            //遍历行,获取每个单元对象
            for (Cell cell : row) {
                System.out.println(cell.getStringCellValue());
            }
        }
        //关闭资源
        excel.close();
    }

    @Test
    public void test2() throws Exception {
        //加载指定文件,创建一个Excel(工作簿)
        XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("C:\\poitest.xlsx")));
        //读取Excel文件中第一个sheet标签项
        XSSFSheet sheet = excel.getSheetAt(0);
        //获取当前工作表最后一行的行号,行号从0开始
        int lastRowNum = sheet.getLastRowNum();
        for(int i=0;i<=lastRowNum;i++){
            //根据行号获取行对象
            XSSFRow row = sheet.getRow(i);
            //获取当前行的最后一个单元格索引
            short lastCellNum = row.getLastCellNum();
            for(short j=0;j<lastCellNum;j++){
                //根据单元格索引获得单元格对象
                XSSFCell cell = row.getCell(j);
                System.out.println(cell.getStringCellValue());
            }
        }
        //关闭资源
        excel.close();
    }
}
java 复制代码
XSSFWorkbook:工作簿
XSSFSheet:工作表
Row:行
Cell:单元格

向Excel文件写入数据

java 复制代码
public class POITest {
    //使用POI向Excel文件写入数据,并且通过输出流将创建的Excel文件保存到本地磁盘
    @Test
    public void test3() throws Exception{
        //在内存中创建一个Excel文件(工作簿)
        XSSFWorkbook excel = new XSSFWorkbook();
        //创建一个工作表对象
        XSSFSheet sheet = excel.createSheet("POI写入数据");
        //在工作表中创建行对象
        XSSFRow title = sheet.createRow(0);
        //在行中创建单元格对象
        title.createCell(0).setCellValue("姓名");
        title.createCell(1).setCellValue("地址");
        title.createCell(2).setCellValue("年龄");

        XSSFRow dataRow = sheet.createRow(1);
        //在行中创建单元格对象
        dataRow.createCell(0).setCellValue("小明");
        dataRow.createCell(1).setCellValue("广州");
        dataRow.createCell(2).setCellValue("20");

        //创建一个输出流,通过输出流将内存中的Excel文件写入本地磁盘
        FileOutputStream outputStream = new FileOutputStream("C:\\hello1.xlsx");
        excel.write(outputStream);
        outputStream.flush();
        excel.close();
    }
}
相关推荐
网络豆16 天前
Apache Maven 鸿蒙 PC 适配全记录:把 JVM 构建工具交付到 HiShell
maven·apache·harmonyos
网络豆16 天前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos
网络豆16 天前
Apache HBase 鸿蒙 PC 适配全记录:用 Qt 原生客户端打通 REST 管理与数据读写
apache·hbase·harmonyos
无巧不成书021817 天前
Apache Tomcat 9 下载全指南(Windows,Linux,macOS):版本选型、国内镜像、SHA-512 与 PGP 完整性校验
windows·tomcat·apache
Dream-Y.ocean17 天前
鸿蒙平台 Apache Tomcat 管理控制台适配实战:基于 Electron 壳方案的真实 HTTP 服务器实现
tomcat·apache·harmonyos
betazhou17 天前
Apache seatunel常用配置参数解析说明
apache·seatunnel
凤山老林18 天前
Spring Boot 集成 Apache Kafka Streams 构建流处理应用:状态存储、窗口聚合与
spring boot·kafka·apache
DolphinScheduler社区18 天前
Apache DolphinScheduler 8 月报:权限安全加固,调度补火上线,性能与稳定性持续提升
大数据·安全·开源·apache·任务调度·海豚调度
sbjdhjd19 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
Jackyzhe20 天前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
apache