SpringBootWeb 篇-入门了解 Apache POI 使用方法

🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍

文章目录

        1.0 Apache POI 概述

        2.0 使用 Apache POI 读写 Excel 文件

        2.1 写入 Excel 文件

        2.2 写入 Excel 文件代码演示

        2.3 读取 Excel 文件

        2.4 读取 Excel 文件代码演示


        1.0 Apache POI 概述

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

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

        2.0 使用 Apache POI 读写 Excel 文件

        2.1 写入 Excel 文件

        首先添加 Apache POI 依赖:

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

具体用到的方法:

        1)创建 XSSFWorkbook对象:

        使用 XSSFWorkbook 创建 XLSX 格式的 Excel 文件。

Workbook workbook = new XSSFWorkbook();

        2)创建工作表对象:

Sheet sheet = workbook.createSheet("Sheet1"); // 创建新的工作表

        3)创建行和单元格对象:

Row row = sheet.createRow(0); // 创建新的行
Cell cell = row.createCell(0); // 创建新的单元格

        4)设置具体的值:

cell.setCellValue("Hello, World!");//在单元格中写入的内容

        5)将在内存创建的 Excel 的文件保存到磁盘中:

FileOutputStream file = new FileOutputStream("example.xlsx");
workbook.write(file);

        2.2 写入 Excel 文件代码演示

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;@SpringBootTest(classes = {demo.demo2.class})public class demo2 {/*** 写入 Excel 文件操作*/public void write() throws IOException {//创建 XSSFWorkbook 对象XSSFWorkbook workbook = new XSSFWorkbook();//创建 Sheet 对象,指定名称 sheet1XSSFSheet sheet = workbook.createSheet("sheet1");//创建行,创建第二行的行对象XSSFRow row = sheet.createRow(1);//创建单元格,创建第二格单元格对象XSSFCell cell = row.createCell(1);//设置具体的值cell.setCellValue("姓名");//创建单元格,创建第三格单元格对象XSSFCell cell1 = row.createCell(2);//设置具体的值cell1.setCellValue("性别");//创建第三行对象XSSFRow row1 = sheet.createRow(2);//创建第二格对象XSSFCell cell2 = row1.createCell(1);cell2.setCellValue("小板");//创建第三格对象XSSFCell cell3 = row1.createCell(2);cell3.setCellValue("男");//创建第四行对象XSSFRow row2 = sheet.createRow(3);//创建第二格对象XSSFCell cell4 = row2.createCell(1);//设置具体的值cell4.setCellValue("童童");//创建第三格对象XSSFCell cell5 = row2.createCell(2);cell5.setCellValue("女");//将该 Excel 从内存中放到磁盘中//首先创建存放的文件FileOutputStream out = new FileOutputStream(new File("D:\\software\\code\\example.xlsx"));workbook.write(out);//最后需要关闭资源out.close();workbook.close();}@Testpublic void test11() throws IOException {write();}
}

运行结果:

        2.3 读取 Excel 文件

        首先需要添加 POI 库的依赖,在前面写入 Excel 文件中已经添加了,这里就没有必要继续添加依赖了。

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

相关的方法:

        1)指定读取的 Excel 文件:

        通过 new File("路径") Flie 对象作为参数来指定要读取的 Excel 文件。

FileInputStream file = new FileInputStream(new File("sample.xlsx"));
Workbook workbook = WorkbookFactory.create(file);

        2)获取 Sheet 对象:

        根据索引或者名字来获取指定的 Sheet 对象。

//通过名字来获取
XSSFSheet sheet1 = workbook.getSheet("指定名字来获取");
//通过索引来获取
XSSFSheet sheet2 = workbook.getSheetAt(0);

        3)获取 Row 对象

        根据索引来获取 Row 对象。

XSSFRow row = sheet.getRow(1);

        获取 Sheet 最后一行的行数。

int lastRowNum = sheet.getLastRowNum();

        4)获取单元格对象

        根据索引来获取 Cell 对象。

XSSFCell cell = row.getCell(1);

        5)获取到单元格中的值

        通过 cell.getStringCellValue() 方法来获取单元格中的值。

String stringCellValue = cell.getStringCellValue();

        2.4 读取 Excel 文件代码演示

    public void read() throws Exception {//创建字节输入流文件对象File file = new File("D:\\software\\code\\example.xlsx");FileInputStream in = new FileInputStream(file);//再进一步封装XSSFWorkbook workbook = new XSSFWorkbook(in);//获取 Sheet 对象,根据索引获取XSSFSheet sheet = workbook.getSheetAt(0);//获取Row对象//获取最后一行的行数int lastRowNum = sheet.getLastRowNum();for (int i = 1; i <= lastRowNum ; i++) {XSSFRow row = sheet.getRow(i);String stringCellValue1 = row.getCell(1).getStringCellValue();String stringCellValue2 = row.getCell(2).getStringCellValue();System.out.println(stringCellValue1 + " " + stringCellValue2);}//最后关闭资源workbook.close();in.close();}@Testpublic void test12() throws Exception {read();}

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Multipass编译OpenHarmony工程

Multipass 是一个轻量级虚拟机管理器&#xff0c;支持 Linux、Windows 与 macOS&#xff0c;这是为希望使用单个命令提供全新 Ubuntu 环境的开发人员而设计的。使用 Linux 上的 KVM、Windows 上的 Hyper-V 和 macOS 上的 HyperKit 来以最小的开销运行 VM&#xff0c;同时它还可…

【网络安全学习】使用Kali做渗透情报收集-02-<指纹识别+目录扫描>

1.指纹识别 指纹识别是指通过一些特征或特定文件来识别目标网站或系统的类型、版本、组件等信息&#xff0c;以便寻找相应的漏洞或攻击方法。 主动指纹识别 通过向目标系统发送正常和异常的请求以及对文件内容的查找&#xff0c;记录响应方式&#xff0c;然后与指纹库进行对比…

【系统架构设计师】一、计算机系统基础知识(指令系统|存储系统|输入输出技术|总线结构)

目录 一、指令系统 1.1 计算机指令 1.2 指令寻址方式 1.3 CISC 与 RISC 1.4 指令流水线 二、存储系统 2.1 分级存储体系 2.2 地址映射 2.3 替换算法 2.4 磁盘 2.4.1 磁盘结构和参数 2.4.2 磁盘调度算法 三、输入输出技术 四、总线结构 五、考试真题练习 一、指令…

12.1 Go 测试的概念

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

VM4.3 二次开发02 方案加载、执行及显示

效果 这是二次开发的第二个文章&#xff0c;所以不重复说明环境配置相关的内容。如果不懂的可以看本专栏的上一个文章。 海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果-CSDN博客 界面代码 <Window x:Class"VmTestWpf.App.MainWindow"x…

element-plus的Tour 漫游式引导怎么去绑定Cascader 级联选择器

首先官方例子是用的button 官方.$el这个log出来是&#xff1a; 知道是以元素为准就拿对应的元素就行 级联选择器.$el是这样的&#xff1a; 你可以移入这个元素部分去看看是哪个要用的&#xff08;好像火狐直接放上去就可以看到元素表示&#xff0c;谷歌要双击或者右键选择去看…

手机ip地址怎么换成成都的

随着互联网的快速发展&#xff0c;我们越来越依赖于网络进行各种操作。而在某些情况下&#xff0c;为了更好地享受网络服务或保护个人隐私&#xff0c;我们可能需要改变手机的IP地址。本文将详细介绍如何将手机IP地址换成成都的&#xff0c;同时提醒大家在操作过程中需要注意的…

【AI开发】CRAG、Self-RAG、Adaptive-RAG

先放一张基础RAG的流程图 https://blog.langchain.dev/agentic-rag-with-langgraph/ 再放一个CRAG和self-RAG的LangChain官方博客 Corrective RAG(CRAG) 首先需要知道的是CRAG的特色发生在retrieval阶段的最后开始&#xff0c;即当我们获得到了近似的document&#xff08;或者…

(day1)数据类型详解及DML语句入门

一、数据类型 1、整型类型 &#xff08;1&#xff09;创建数据库 CREATE DATABASE ql_linux&#xff1b; CREATE SCHEMA IF NOT EXISTS ql_linux&#xff1b; //IF NOT EXISTS如果没有表就创建 SHOW DATABASE; //查看数据库 &#xff08;2&#xff09;创建表 C…

【Git】-- 添加公钥到 github 或者gitlab上

仅针对系统&#xff1a;mac os 、 unix、linux 1、检查是否有 id_rsa.pub $ cd ~ $ ls -al ~/.ssh 注意&#xff1a;若已有 id_rsa.pub&#xff0c;则必要执行 第二步&#xff0c;避免覆盖掉原有正常的公钥。 配置多个 git 账号请参考&#xff1a;同一台电脑配置多个git账…

每日一题——Python实现PAT甲级1132 Cut Integer(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 正确性和功能性 时间复杂度 空间复杂度 其他点评 总结 我要更强 优化后…

黑马苍穹外卖1 Git+Nginx反向代理+员工登录表加密+Swagger

整体结构 前端 &#xff1a;管理端Web/用户端(小程序) 后端&#xff1a;后端服务&#xff08;java&#xff09; 1 直接使用前端环境 2后端环境搭建 3 完善登录功能 后端环境搭建基于Maven&#xff0c;分模块开发 common公共类&#xff1a;constant常量类、、、、 pijo类:实…

SQL:按用户名复制权限

生产系统中有一个模块是管理用户及菜单权限&#xff0c;它们是由3个数据表组成&#xff0c;关系及字段如下&#xff1a; 原来为每个用户添加菜单的访问权限时都是一个一个添加&#xff0c;但今天遇到有个新来的员工&#xff0c;需要具有与另一个员工相同的权限。新建一个用户后…

vue3 中实现 验证码发送 刷新不变倒计时

今天实现一个倒计时的功能 在平常开发前端的功能的时候 不管是 移动端还是web端 我们都会有注册 登录 中的发送验证码功能 实现绑定以及注册功能。今天我主要分享一下当前的验证码实现原理。 有两种做法(我目前认为以及看到的) ① 做一个简单的倒计时 ② 实时监测倒计时 刷…

今日AI资讯-20240615

1. Follow Your Emoji 一键让照片变表情包 腾讯混元联合港科大、清华大学联合推出肖像动画生成框架Follow Your Emoji&#xff0c;可以通过人脸骨架信息生成任意风格的脸部动画&#xff0c;一键创建表情包。基于算法革新和数据积累&#xff0c;Follow Your Emoji可以支持对脸部…

中电金信:银行业数据中心何去何从

20多年前&#xff0c;计算机走进国内大众视野&#xff0c;计算机行业迎来在国内的高速发展时代。银行业是最早使用计算机的行业之一&#xff0c;也是计算机技术应用最广泛、最深入的行业之一。近年来&#xff0c;随着银行竞争加剧&#xff0c;科技如何引领业务、金融科技如何发…

聊聊DoIP吧(三)-端口号port

DoIP在UDP和TCP建立连接和发送诊断报文的过程中使用的端口定义如下&#xff1a;

【会议】一张图片讲清楚:项目启动会议

另附上启动会前需要准备的内容&#xff1a;

Windows10笔记本如何系统重装?64位电脑重装系统需小心!一键安装超详细步骤!

在日常生活和工作中&#xff0c;我们有时会遇到Windows 10笔记本系统运行缓慢、频繁出现错误或受到病毒攻击等问题。这时&#xff0c;重装系统就成了解决这些问题的最佳选择。然而&#xff0c;对于许多用户来说&#xff0c;尤其是64位电脑用户&#xff0c;重装系统可能是一项既…

18、24年--信息系统工程——系统集成

1、集成基础 系统集成的工作再信息系统项目建设中非常重要,它通过硬件平台、网络通信平台、数据库平台、工具平台、应用软件平台将各类资源有机、高效地集成到一起,形成一个完整的工作台面。系统集成工作的好坏对系统开发、维护有极大的影响。因此,在技术上需要遵循的基本原…