Apache POI 操作Excel简单入门使用
Apache POI简介
开发中经常会涉及到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式档案读和写的功能。
官方主页: http://poi.apache.org/index.html
API文档: http://poi.apache.org/apidocs/index.html
创建一个put普通的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格式档案的功能
注意:使用wps的同学也可以使用poi
下面来写两个案例吧
1. 从Excel文件读取数据
POI操作Excel表格封装了几个核心对象:
XSSFWorkbook:工作簿
XSSFSheet:工作表
XSSFRow:行
XSSFCell:单元格
1:创建工作簿对象
// 1.创建工作簿对象,并指定操作的文件
XSSFWorkbook workbook = new XSSFWorkbook("H:\\temp\\goodstype.xlsx");

2:获得工作表对象
// 2.获取工作表对象,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
XSSFSheet sheetAt = workbook.getSheetAt(0);

3:遍历工作表对象 获得行对象
// 3.遍历工作表获得行对象
for (Row row : sheetAt) {
}


4:遍历行对象 获得单元格(列)对象
// 4.遍历行对象获取单元格对象
for (Cell cell : row) {
// 获取单元格数据
String cellValue = cell.getStringCellValue();
System.out.println("cellValue = " + cellValue);
}
5:获得数据

注意:这里报了一个错,原因是我的第一列是数值类型,当我们以getStringCellValue获取时需要将该列改为文本类型

6:关闭
workbook.close();
还有一种方式获取数据
//创建工作簿
XSSFWorkbook workbook = new XSSFWorkbook("H:\\temp\\goodstype.xlsx");
//获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
XSSFSheet sheet = workbook.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++){
// 获取单元格对象的值
String value = row.getCell(j).getStringCellValue();
System.out.println(value);
}
}
workbook.close();
2.向Excel文件写入数据
package com.qbb.poi;
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;
/**
* @author QiuQiu&LL (个人博客:https://www.cnblogs.com/qbbit)
* @version 1.0
* @date 2022-03-17 10:37
* @Description:
*/
public class WriteExcel {
public static void main(String[] args) throws Exception {
// 1.创建工作簿对象
XSSFWorkbook workbook = new XSSFWorkbook();
// 2.创建工作表对象
XSSFSheet sheet = workbook.createSheet("qiuqiu");
// 3.创建行对象,0表示第一行
XSSFRow row = sheet.createRow(0);
// 设置头部信息
row.createCell(0).setCellValue("ID");
row.createCell(1).setCellValue("姓名");
row.createCell(2).setCellValue("成绩");
// 4.创建列(单元格)对象, 设置内容
XSSFRow row1 = sheet.createRow(0);
row1.createCell(0).setCellValue("1");
row1.createCell(1).setCellValue("qiuqiu");
row1.createCell(2).setCellValue(100);
XSSFRow row2 = sheet.createRow(0);
row2.createCell(0).setCellValue("2");
row2.createCell(1).setCellValue("ll");
row2.createCell(2).setCellValue("99");
// 5.通过输出流将workbook对象下载到磁盘
FileOutputStream outputStream = new FileOutputStream("H:\\temp\\score.xlsx");
workbook.write(outputStream);
// 刷新
outputStream.flush();
outputStream.close();
workbook.close();
}
}

注意:当我们打开了当前excel时,再去写将会报错,已被占用;关闭excel再运行就好了
感觉没有EasyExcel用的爽啊,有兴趣的小伙伴可以去了解阿里的EasyExcel
Apache POI 操作Excel简单入门使用的更多相关文章
- 利用Apache POI操作Excel
最近在做接口,有个功能是利用Excel导入汽车发动机所需零件信息到线上系统中.简单回顾一下之前学过的用java操作Excel. 1.maven配置Apache POI pom.xml中配置POIjar ...
- 关于 HSSF 和 XSSF 功能的开发者入门指南 (Apache POI 操作 Excel)
关于 HSSF 和 XSSF 功能的开发者入门指南 笔者深夜无眠,特此对本文翻译一部分,未完成部分待后续更新 本文源文地址 意欲使用 HSSF 和 XSSF 功能快熟读写电子表格?那本文就是为你而写的 ...
- 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?
在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如 ...
- 如何用Apache POI操作Excel文件-----如何对一个单元格加注解?
有的时候,我们需要通过操作Apache POI,在生成Cell数据的同时,能对其生成的Cell,加上注解(comments),类似于下面的. 那么对于这种情况,我们的代码应该如何写呢? 借花献佛,我就 ...
- java使用Apache POI操作excel文件
官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is ...
- apache POI 操作excel<导入导出>
1.首先导入maven依赖 <!-- POI核心依赖 --> <dependency> <groupId>org.apache.poi</groupId> ...
- Apache POI 操作Excel(1)--POI简介
Apache POI(http://poi.apache.org/)是一个用于读取和编写Microsoft Office文件格式开源的Java项目,现在已经可以操作Excel,PowerPoint,W ...
- 如何用Apache POI操作Excel文件-----如何用Apache POI 画一个离散图
有的时候,我们需要Excel中的数据,通过一个图画,可视化的表现出来. 那么这个时候,应该如何做呢?现在就借花献佛,以Apache POI自己提供的一个例子为例,给大家演示一下POI的API 如何画图 ...
- (6) 如何用Apache POI操作Excel文件-----POI-3.10的一个和注解(comment)相关的另外一个bug
如果POI-3.10往一个工作表(sheet)里面插入数据的话,需要注意了,其有一个不太被容易发现的bug. 被插入的工作表(sheet)里面的单元格没有包含任何的注解(comment)的时候,插入一 ...
- 使用Apache POI操作Excel文件---在已有的Excel文件中插入一行新的数据
package org.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...
随机推荐
- ESS、RSS、TSS
回归平方和 ESS,残差平方和 RSS,总体平方和 TSS 残差平方和越小,自变量与因变量之间的相关性越好 总变差(TSS):被解释变量Y的观测值与其平均值的离差平方和(总平方和)(说明 Y 的总变动 ...
- Django CMS搭建--1.虚拟环境搭建
客户端环境:windows10 1.virtualenv使用 virtualenv 是 Python 中的一个包,用于创建和管理虚拟环境,可以在不同的项目中使用不同的 Python 版本和第三方库,避 ...
- 04-Shell字符串变量
1. 字符串变量的三种方式 字符串(String)就是一系列字符的组合.字符串是 Shell 编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了) 单引号方式 双引号方式, 推荐 不用引号 ...
- CC BY-SA 4.0原文及翻译
CC BY-SA 4.0原文及翻译 英文参考链接 中文参考链接 原文: Attribution 4.0 International (CC BY 4.0) This is a human-readab ...
- js排序算法--冒泡排序
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- Go 常用标准库之 fmt 介绍与基本使用
Go 常用标准库之 fmt 介绍与基本使用 目录 Go 常用标准库之 fmt 介绍与基本使用 一.介绍 二.向外输出 2.1 Print 系列 2.2 Fprint 系列 2.3 Sprint 系列 ...
- 企业FTP搭建教程
安装Vsftpd 提前关闭selinux 和firewalld防火墙 安装vsftp软件包: yum install -y vsftpd* 启动vsftp服务器: systemctl start vs ...
- 面试题:MySQL事务的ACID如何实现?
大家好,我是[码老思],事务是一个数据库绕不开的话题,今天和大家一起聊聊. 事务是什么? 事务(Transaction)是并发控制的基本单位.所谓的事务呢,它是一个操作序列,这些操作要么都执行,要么都 ...
- 这次弄一下maven 多模块项目,用vscode新建一下,便于管理项目
首先 创建一个mvn项目, 直接在命令行执行, 原型生成: mvn archetype:generate 选一个maven quick start的template, 然后删除src和target文件 ...
- JavaScript:判断数据类型的四种方法
JavaScript目前有两种数据类型:基本数据类型和引用数据类型. 基本数据类型:Undefined.Null.Boolean.String.Number.Symbol(ES6) 引用数据类型:Ob ...