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 ... 
