iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Apache POI的基本使用详解
  • 802
分享到

Apache POI的基本使用详解

ApachePOI使用ApachePOI 2022-06-04 23:06:08 802人浏览 薄情痞子
摘要

目录基本介绍入门测试(从excel文件读取数据)第一步:导入Maven坐标第二步:创建Excel文件第三步:写测试代码代码说明及扩展入门测试(向Excel文件写入数据)基本介绍 POI pache POI是用j

目录
  • 基本介绍
  • 入门测试(从excel文件读取数据)
    • 第一步:导入Maven坐标
    • 第二步:创建Excel文件
    • 第三步:写测试代码
    • 代码说明及扩展
  • 入门测试(向Excel文件写入数据)

    基本介绍

    POI

    • pache POI是用java编写的免费开源的跨平台的Java api,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,
    • 使用最多的就是使用POI操作Excel文件。
    • 它还能操作Word等这些其他形式的文档

    jxl:专门操作Excel,专门用来操作Excel的

    使用POI,需要导入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结构:针对不同的文档形式来操作的时候会提供相应的一些类

    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文件中读取数据

    第一步:导入maven坐标

    下面是第二步

    第二步:创建Excel文件

    在这里插入图片描述

    第三步:写测试代码

    
    package com.yy.test;
    
    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 org.junit.Test;
    
    import java.io.File;
    import java.io.FileInputStream;
    
    
    public class POITest {
        @Test
        public void test() throws Exception {
            //传入一个输入流,加载指定文件,创建一个Excel对象(工作簿)
            XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("E:\\testNomal\\poi.xlsx")));
            //读取Excel文件中的第一个Sheet标签页
            XSSFSheet sheet = excel.getSheetAt(0);
            //一个sheet页里VmLcS面有很多行,遍历这个sheet标签页,获取每一行数据
            for (Row row : sheet) {
                //遍历行,获得每个单元格对象
                for (Cell cell : row) {
                    //cell代表单元格对象
                    System.out.println(cell.getStrinGCellValue());//getStringCellValue第二列因为是数值,不能转为String类型的所以报错
                    //只要将Excel表格里面的第二列的内容改为string类型的就可以了
                }
            }
            //关闭Excel文件
            excel.close();
        }
    }
    
    

    运行结果:

    在这里插入图片描述

    因为是入门案例,我这里就要类型改变为下面的,将Excel文件里面的内容修改后:

    在这里插入图片描述
    在这里插入图片描述

    代码说明及扩展

    通过上面的入门案例可以看到,POI操作Excel表格封装了几个核心对象:

    XSSFWorkbook:工作簿
    XSSFSheet:工作表
    Row:行
    Cell:单元格

    上面案例是通过遍历工作表获得行,遍历行获得单元格,最终获取单元格中的值。

    还有一种方式就是获取工作表最后一个行号,从而根据行号获得行对象,通过行获取最后一个单元格索引,从而根据单元格索引获取每行的一个单元格对象,代码如下:

    
    package com.yy.test;
    
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import org.junit.Test;
    
    import java.io.File;
    import java.io.FileInputStream;
    
    
    public class POITest {
        @Test
        public void test2() throws Exception {
            //传入一个输入流,加载指定文件,创建一个Excel对象(工作簿)
            XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("E:\\testNomal\\poi.xlsx")));
            //读取Excel文件中的第一个Sheet标签页
            XSSFSheet sheet = excel.getSheetAt(0);
            //获取当前工作表最后一行的行号,行号从0开始
            int lastRowNum = sheet.getLastRowNum();
            System.out.println("lastRowNum:"+lastRowNum);
            for(int i=0;i<=lastRowNum;i++){
                //根据行号获取每一行
                XSSFRow row = sheet.getRow(i);
                //获取当前行最后一个单元格索引
                short lastCellNum = row.getLastCellNum();
                System.out.println("lastCellNum:"+lastCellNum);
                for(short j=0;j<lastCellNum;j++){
                    //根据单元格索引获取单元格内容
                    String value = row.getCell(j).getStringCellValue();
                    System.out.println(value);
                }
            }
            //关闭Excel文件
            excel.close();
        }
    }
    
    

    在这里插入图片描述

    入门测试(向Excel文件写入数据)

    测试代码:

    
    //使用POI向Excel文件写入数据,并且通过输出流将创建的Excel文件保存到本地磁盘
        //@Test
        public void test3() throws Exception{
            //在内存中创建一个Excel文件(工作簿)
            XSSFWorkbook excel = new XSSFWorkbook();
            //创建一个工作表对象,名字叫做:POI写入测试
            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 out = new FileOutputStream(new File("e:\\hello.xlsx"));
            excel.write(out);//写入
            out.flush();//刷新
            excel.close();
        }
    

    在这里插入图片描述

    到此这篇关于Apache POI的基本使用的文章就介绍到这了,更多相关Apache POI使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    --结束END--

    本文标题: Apache POI的基本使用详解

    本文链接: https://www.lsjlt.com/news/21405.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Apache POI的基本使用方法
      今天就跟大家聊聊有关Apache POI的基本使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。基本介绍POIpache POI是用Java编写的免费开源的跨平台的Java AP...
      99+
      2023-06-25
    • poi-tl的使用(最全详解)
      官网地址 概述 poi-tl,简单的说,就是通过一些标记,如{{text}},{{@image}}等,放到你指定的word模板里,然后去读取替换这些值,再输出填充数据后的word,可以做生成报表的功能...
      99+
      2023-09-05
      java 开发语言
    • Java使用apache poi操作excel的方式
      目录一.基本介绍1.1、Apache POI介绍1.2、HSSF和XSSF1.3、引入依赖二.利用poi库创建excel2.1、创建一个空excel2.2、简单演示写入excel内容...
      99+
      2024-04-02
    • gochan基本使用详解
      目录1、有缓冲的chan 与无缓冲的chan2、有缓冲的chan3、利用chan 实现生产者消费者4、利用chan 实现同步5、并发处理1、有缓冲的chan 与无缓冲的chan 怎么...
      99+
      2023-05-18
      go chan使用 go chan
    • Flask-Sqlalchemy的基本使用详解
      目录一: 基本使用:1:环境的安装:2:组件初始化:3:构建模型类:二:数据操作:1:增加数据:2:查询数据:3:修改数据:4:删除数据:三:高级机制:1:刷新数据:2:多表查询:一...
      99+
      2024-04-02
    • JavaWeb.servlet的基本使用方法详解
      目录前言:一.实现servlet二.开发模式 三.继承Servlet 总结前言: 我们在前几篇文章里的web项目都是用jsp文件完成的,那么什么时候jsp算是学完...
      99+
      2024-04-02
    • Swagger及knife4j的基本使用详解
      目录Swagger以及knife4j基本使用Swagger 介绍:Restful 面向资源SpringBoot使用swaggerKnife4j --Swagger增强工具Swagge...
      99+
      2024-04-02
    • 详解adb工具的基本使用
      目录adb 是什么?adb的基本使用adb 是什么? adb全称Android Debug Bridge,是Android SDK中的一个工具, 使用adb可以直接操作管理Andro...
      99+
      2022-11-13
      adb工具使用 adb工具
    • pytorchDataLoaderj基本使用方法详解
      目录一、DataLoader理解二、DataLoader基本使用方法定义数据集定义DataLoader在训练过程中遍历DataLoader使用DataLoader实现多GPU训练三、...
      99+
      2023-05-17
      pytorch DataLoader基本方法 pytorch DataLoader
    • GoJs基本使用示例详解
      目录使用gojs背景gojs的引入去除水印使用gojs背景 因为公司业务需要,需要完成一个树形的关系图,并且在后续过程中会对树形关系图进行很多的交互来拓展树形图的展示。因此在研究了D...
      99+
      2023-05-16
      GoJs基本使用 GoJs 使用
    • Java Spring JdbcTemplate基本使用详解
      目录JdbcTemplate概述JdbcTemplate开发步骤JdbcTemplate快速入门Spring产生JdbcTemplate对象JdbcTemplate概述 它是spri...
      99+
      2024-04-02
    • Dbeaver基本使用图文详解
      1:与plsql相比,Dbeaver没有右击直接查看表注释的功能,但是Dbeaver提供了一个“打开声明”的功能,里面可以查看一些比较实用的内容:表列注释、创建该表的create语句...
      99+
      2024-04-02
    • Go结构体的基本使用详解
      目录定义实例化匿名结构体空结构体构造函数方法与接收者匿名字段实现面向对象的“继承”特性标签tag结构体与JSON系列化本文主要介绍Go的结构体类型的基本使用,...
      99+
      2023-02-16
      Go结构体 Go结构体使用
    • linux的基本命令mkdir使用详解
      目录1、mkdir 命令介绍2、常用参数及案例2.1 常用参数2.2 案例举例2.2.1 在当前工作目录,创建目录文件2.2.2 创建带权限的目录2.2.3 创建多个目录2.2.4 ...
      99+
      2023-03-03
      Linux mkdir 命令 mkdir命令详解 linux mkdir函数
    • 使用apache poi怎么实现导出excel文件
      使用apache poi怎么实现导出excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下:package com.icourt.util;import org....
      99+
      2023-05-31
      apachepoi excel
    • 一文详解Golang中consul的基本使用
      目录consulconsul的安装和部署docker安装consul镜像的启动启动一个tcp_health_check的服务注册http版服务发现consul consul是一个开源...
      99+
      2023-03-06
      Golang consul使用 Golang consul Go consul
    • 详解Golang中gcache模块的基本使用
      目录先说结论优势基本使用打印结果缓存控制打印结果缓存淘汰策略实战举例代码示例打印结果小技巧GetOrSetFunc的使用总结gcache提供统一的缓存管理模块,提供了开发者可自定义灵...
      99+
      2024-04-02
    • Python中字符串的基本使用详解
      目录前言1 字符串索引1.1 循环索引字符2 字符使用2.1 字符串运算3 字符串切片3.1 切片方法4 字符串格式化总结前言 除了数字,Python中最常见的数据类型就是字符串,无...
      99+
      2024-04-02
    • React Native 脚手架的基本使用详解
      构建项目 在相应的路径下执行命令行:react-native init 项目名 (名称不可使用连接符等特殊字符,命名可以参考APP应用名称 比如 FaceBook) react-...
      99+
      2024-04-02
    • Redux的基本使用过程步骤详解
      目录Redux的使用过程Redux测试项目的搭建Redux的基本使用步骤Redux目录的结构划分React的三大原则Redux的使用过程 Redux测试项目的搭建 1.创建一个新的项...
      99+
      2022-12-19
      Redux基本使用 Redux用法
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作