Apache POI

一、介绍

Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程序中对Miscrosoft Office各种文件进行读写操作。

一般情况下,POI都是用于操作 Excel文件。

准备工作:

在pom文件中导入依赖---

复制代码
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>

二、操作方法

1、通过POI向Excel文件写入内容
复制代码
/**
     * 通过POI创建Excel文件并写入文件内容
     */
    private static void write() throws Exception {
//        在内存中创建一个Excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
//        在Excel文件中创建一个Sheet页
        XSSFSheet sheet = excel.createSheet("info");
//        在Sheet页中创建行对象,rownum编号从0开始
        XSSFRow row = sheet.createRow(1);
//        创建单元格并且写入文件内容
        row.createCell(1).setCellValue("姓名");
        row.createCell(2).setCellValue("城市");

//        创建一个新行
        row = sheet.createRow(2);
        row.createCell(1).setCellValue("张三");
        row.createCell(2).setCellValue("北京");

        row = sheet.createRow(3);
        row.createCell(1).setCellValue("李四");
        row.createCell(2).setCellValue("南京");

//        通过输出流将内存中的Excel文件写入到磁盘
        FileOutputStream out = new FileOutputStream(new File("F:\\info.xlsx"));
        excel.write(out);

//        关闭资源
        out.close();
        excel.close();
    }
2、 通过POI将Excel文件内容读出

其中 i的变量为1,也就是说我是从表第二行开始读的,如果你第一行有数据,就将i的变量改为0.

复制代码
    /**
     * 通过POI读取Excel文件中的内容
     *
     * @throws Exception
     */
    private static void read() throws Exception {
        FileInputStream in = new FileInputStream(new File("F:\\info.xlsx"));

//      读取磁盘上已经存在的Excel文件
        XSSFWorkbook excel = new XSSFWorkbook(in);
//        读取Excel文件中的Sheet页
        XSSFSheet sheet = excel.getSheetAt(0);

//        获取sheet中最后一行的行号
        int lastRowNum = sheet.getLastRowNum();

        for (int i = 1; i <= lastRowNum; i++) {
//            获得某一行
            XSSFRow row = sheet.getRow(i);
//            获得单元格对象
            String cellValue1 = row.getCell(1).getStringCellValue();
            String cellValue2 = row.getCell(2).getStringCellValue();
            System.out.println(cellValue1 + " " + cellValue2);
        }

//        关闭资源
        in.close();
        excel.close();
    }
相关推荐
用户37215742613517 分钟前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊1 小时前
Java学习第22天 - 云原生与容器化
java
渣哥3 小时前
原来 Java 里线程安全集合有这么多种
java
间彧3 小时前
Spring Boot集成Spring Security完整指南
java
间彧4 小时前
Spring Secutiy基本原理及工作流程
java
Java水解5 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆7 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学7 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole7 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端
华仔啊7 小时前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端