Apache POI基本介绍---入门级

news/2024/11/24 13:07:28/

POI介绍
ApachePOI是用Java编写的免费开源的跨平台的JavaAPI,ApachePOI提供API给Java程序对MicrosoftOffice格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。
maven坐标:

 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency>

POI结构:

HSSF-提供读写MicrosoftExcelXLS格式档案的功能
XSSF-提供读写MicrosoftExcelOOXMLXLSX格式档案的功能
HWPF-提供读写MicrosoftWordDOC格式档案的功能
HSLF-提供读写MicrosoftPowerPoint格式档案的功能
HDGF-提供读MicrosoftVisio格式档案的功能
HPBF-提供读MicrosoftPublisher格式档案的功能
HSMF-提供读MicrosoftOutlook格式档案的功能

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

在e盘下创建一个xlsx文件
在这里插入图片描述

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

在这里插入图片描述
通过上面的入门案例可以看到,POI操作Excel表格封装了几个核心对象:

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

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

  //使用POI读取Excel文件中的数据@Testpublic void test2() throws Exception{//加载指定文件,创建一个Excel对象(工作簿)XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("e:\\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(int j=0;j<lastCellNum;j++){XSSFCell cell = row.getCell(j);//根据单元格索引获得单元格对象System.out.println(cell.getStringCellValue());}}//关闭资源excel.close();}

运行结果:
在这里插入图片描述
向Excel文件写入数据
使用POI可以在内存中创建一个Excel文件并将数据写入到这个文件,最后通过输出流将内存中的Excel文件下载到磁盘

//使用POI向Excel文件写入数据,并且通过输出流将创建的Excel文件保存到本地磁盘@Testpublic void test3() throws Exception{//在内存中创建一个Excel文件(工作簿)XSSFWorkbook excel = new XSSFWorkbook();//创建一个工作表对象,名称叫 嘤嘤嘤XSSFSheet sheet = excel.createSheet("嘤嘤嘤");//在工作表中创建行对象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();}

测试结果:
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/200277.html

相关文章

a59s刷机包卡刷 oppo_OPPO A59S刷机包下载|OPPO A59S刷机包官方下载-太平洋下载中心...

刷机包教程: 1、下载安装线刷宝以及对应机型的ROM包。 点击下载 最新版线刷宝刷机工具,下载安装。 1.1 更改安装路径 软件截图1 1.2 正在安装 软件截图2 1.3 安装完成 软件截图3 2、连接手机,在首页按照实际情况点击按钮。 软件截图4 3、点击“选择本地ROM”,选择相匹配的线…

Apollo5.0安装

前言 Apollo5.0要求&#xff1a; 系统版本在ubuntu16.04或ubuntu16.04以上NVIDIA驱动>410.48 Driver Download 一般ubutun上自带了NVIDIA驱动&#xff0c;可在Setting->Software&Update->Additional Driver里查看&#xff1b;或者根据这个说明下载Apollo内核跟英…

百度Apollo6.0(5.5)安装

百度Apollo安装过程比较简单&#xff0c;但还是记录一下&#xff1a; 首先&#xff0c;安装Apollo时有硬件要求。基本要求 下载源码 git clone https://github.com/apolloauto/apollo 如果你没有安装docker&#xff0c;那么需要自己安装docker。(已经安装了docker&#xff0c…

oppoa57升级android版本,OPPO A57刷机教程_OPPO A57升级更新官方系统包

下面整理一下咱们的OPPO A57手机的刷机教程了&#xff0c;这个刷机教程也是针对官方的rom包的&#xff0c;之前有机友下载了官方的rom包&#xff0c;可是又不知道如何的操作&#xff0c;所以在这里整理了一个详细的卡刷刷机的教程供大家参考了&#xff0c;不过今天在这里说的卡…

5.1. PHP

内容索引: 5.1. PHP5.1.1. 后门5.1.1.1. php.ini构成的后门5.1.1.2. .user.ini文件构成的PHP后门5.1.2. 反序列化5.1.2.1. PHP序列化实现5.1.2.2. PHP反序列化漏洞5.1.2.3. 相关CVE5.1.2.3.1. CVE-2016-71245.1.3. Disable Functions5.1.3.1. 机制实现5.1.3.2. Bypass5.1.4. Op…

OPA5入门教程

文件结构 integration/navigationJourney.js OPA测试用例描述 sap.ui.require([//需要引入opaQunit&#xff0c;则可以按照Qunit的书写方式进行书写"sap/ui/test/opaQunit" ], function () {"use strict";// 一个测试module,类似于QunitQUnit.module(&q…

oppofindx5pro评测

ppoFindX5Pro这次在机身的外观方面&#xff0c;还是继续延续了上一代oppoFindX3Pro的设计思路&#xff0c;相机镜头模块依然是采用圆润的过渡设计&#xff0c;虽然相机镜头略微有所凸起&#xff0c;但是没有上一代那么明显。而且oppoFindX5Pro搭载的环形山的相机模块&#xff0…

OPPOA57刷机/OPPOA57刷机包下载/OPPOA57怎么刷机/OPPOA57刷机教程

①&#xff1a;此线刷包支持解锁&#xff1a;屏幕锁、账户密码锁、图案锁、指纹锁 ②&#xff1a;下载后&#xff0c;将刷机包解压&#xff0c;解压后有一键刷机教程 ③&#xff1a;此线刷包支持救砖&#xff1a;解决不开机、定屏、重启、中毒等问题 ④&#xff1a;官方刷机包&…