当前位置: 首页 > news >正文

Apache POI对Excel进行读写操作

1、什么是Apache POI

​ Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI 都是用于操作 Excel 文件。

image-20240531085649680

Apache POI 的应用场景:

  • 银行网银系统导出交易明细

  • 各种业务系统导出Excel报表

  • 批量导入业务数据

2、简单使用Apache POI

Apache POI既可以将数据写入Excel文件

使用之前需要在项目的pom.xml文件中添加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>
2.1、将数据写入Excel文件

实现效果

image-20240531143237595

代码实现

    /*** 写入excel* @throws Exception*/@Testpublic void testWrite() throws Exception {//创建excel文件并写入磁盘//创建一个内存的excel文件对象XSSFWorkbook workbook = new XSSFWorkbook();//创建一个工作表 XSSFSheetXSSFSheet sheet = workbook.createSheet("demo");//创建数据 XSSRow,行号从0开始XSSFRow row = sheet.createRow(0);//根据XSSRow创建单元格并写入数据,单元格从0开始row.createCell(1).setCellValue("姓名");row.createCell(2).setCellValue("爱好");row = sheet.createRow(1);row.createCell(1).setCellValue("小林");row.createCell(2).setCellValue("编程");//创建文件输出流,保存到磁盘FileOutputStream fileInputStream = new FileOutputStream("d:/file/demo.xlsx");//将excel文件给到输出流保存workbook.write(fileInputStream);//关闭流workbook.close();}
3、读取Excel文件中的数据

实现效果

image-20240531143509553

代码实现

    /*** 读取excel*/@Testpublic void testRead() throws Exception {//读取excel//创建文件输入流FileInputStream fileInputStream = new FileInputStream("d:/file/demo.xlsx");//创建内存excel文件XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fileInputStream);//根据XSSFWordbook对象,获取工作表对象XSSFSheet sheet = xssfWorkbook.getSheet("demo");//获取最后一行行号int lastRowNum = sheet.getLastRowNum();//遍历读取for (int i = 0; i <= lastRowNum; i++) {XSSFRow row = sheet.getRow(i);String cellValueOne = row.getCell(1).getStringCellValue();String cellValueTwo = row.getCell(2).getStringCellValue();System.out.println(cellValueOne + " " + cellValueTwo);}//关闭流fileInputStream.close();xssfWorkbook.close();}

相关文章:

Apache POI对Excel进行读写操作

1、什么是Apache POI ​ Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下&#xff0c;POI 都是用于操作 Excel 文件。 Apache POI 的应用场景&…...

网络安全中攻击溯源方法

目前网络攻击已经成为常见的安全威胁之一&#xff0c;其造成的危害和损失都是不可估量的&#xff0c;因此网络攻击受到了高度重视。而当我们遭遇网络攻击时&#xff0c;攻击溯源是一项非常重要的工作&#xff0c;可以帮助我们迅速发现并应对各类网络攻击行为&#xff0c;那么网…...

软件设计不是CRUD(21):在流式数据处理系统中进行业务抽象落地——需求分析

本文主要介绍如何在数据处理系统中应用业务抽象的设计思想。目前业界流行的数据处理方式是流式处理&#xff0c;主流的流式处理引擎有Apache Spark&#xff0c;Apache Flink等等。本文选择Apache Flink作为实战案例的落地。由于本文主要是讲解设计思想和流式处理引擎相结合的方…...

远控免杀篇

0x00&#xff1a;前言 随着近两年hvv和红蓝对抗以及国家对于网络安全的重视&#xff0c;国内防护水平都蹭蹭上了一个台阶&#xff0c;不管是内部人员的技术水平提高还是防护设备的层层部署&#xff0c;均给了红队人员想要进一步行动设置了障碍。 通过weblogic的cve-2019-2725获…...

基于单片机的超声波倒车雷达设计

摘 要&#xff1a;文 章设计了一种基于单片机的超声波倒车雷达系统&#xff0c;以 AT89C51 型单片机作为控制核心&#xff0c;集距离测量、显示&#xff0c;方位显示和危险报警于一体&#xff0c;以提高驾驶者在倒车泊车时的安全性和舒适性。本设计采用 Keil 软件对系统程序…...

如何增加服务器的高并发

哈喽呀大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;随着互联网应用的普及和用户量的不断增加&#xff0c;服务器的高并发性能成为了开发者们面临的一项重要挑战。在处理大量并发请求时&#xff0c;服务器需要具备高效的处理能力和稳定的性能&#xff0c;以确保系统的…...

webservice、WCF、webAPI权限认证

webservice 权限认证 》》soapHeader SOAPHeader案例 》》 window 集成认证 在IIS里取消匿名访问权限&#xff0c;若允许匿名访问&#xff0c;就没有必须提供验证凭证了 R2RServiceSerialNumber sN new R2RServiceSerialNumber();sN.Url "http://172.xxxxx/R2RServi…...

Kafka之Producer原理

1. 生产者发送消息源码分析 public class SimpleProducer {public static void main(String[] args) {Properties prosnew Properties();pros.put("bootstrap.servers","192.168.8.144:9092,192.168.8.145:9092,192.168.8.146:9092"); // pros.pu…...

ubuntu20.04部署gitlab流程

参考&#xff1a; https://blog.csdn.net/weixin_57025326/article/details/136048507 362 wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_16.2.1-ce.0_amd64.deb/download.deb367 sudo apt install gitlab-ce…...

C/C++动态内存管理(new与delete)

目录 1. 一图搞懂C/C的内存分布 2. 存在动态内存分配的原因 3. C语言中的动态内存管理方式 4. C内存管理方式 4.1 new/delete操作内置类型 4.2 new/delete操作自定义类型 1. 一图搞懂C/C的内存分布 说明&#xff1a; 1. 栈区&#xff08;stack&#xff09;&#xff1a;在…...

搭建一个基于主流技术Spring Boot 2 + Vue 3 + Ant Design Vue的技术框架的简要步骤

搭建一个基于主流技术Spring Boot 2 Vue 3 Ant Design Vue的技术框架涉及前后端分离的开发模式。以下是一个简化的步骤指南&#xff0c;用于帮助你开始这个项目&#xff1a; 1. 后端&#xff08;Spring Boot 2&#xff09; 1.1 初始化项目 使用Spring Initializr&#xff08;…...

水电站生产指挥调度系统方案

一、方案背景 在碧波荡漾的大江大河之上&#xff0c;巍然屹立着一座座水电站&#xff0c;它们如同一个个巨人在默默地守护着我们的家园。在这些建设者的辛勤耕耘下&#xff0c;水电站在保障国家能源安全、优化能源结构以及减少环境污染等方面发挥着重要作用。 然而&#xff0c…...

深度学习入门-第3章-神经网络

前面的待补充 3.6 手写数字识别 3.6.1 MNIST 数据集 本书提供了便利的 Python 脚本 mnist.py &#xff0c;该脚本支持从下载 MNIST 数据集到将这些数据转换成 NumPy 数组等处理&#xff08;mnist.py 在 dataset 目录下&#xff09;。 使用 mnist.py 时&#xff0c;当前目录必须…...

如何使用AES128位进行视频解密

要实现AES128位加解密&#xff0c;可以使用JavaScript的crypto-js库。以下是一个简单的示例&#xff1a; HTML代码&#xff1a; <video controlsList"nodownload" controls></video> 首先&#xff0c;需要安装crypto-js库&#xff1a; npm install cr…...

ArkTS是前端语言吗

ArkTS是前端语言吗 ArkTS&#xff0c;这个名词在现代软件开发领域里逐渐崭露头角&#xff0c;但对于许多人来说&#xff0c;它仍旧是个神秘而令人困惑的存在。那么&#xff0c;ArkTS究竟是前端语言吗&#xff1f;为了回答这个问题&#xff0c;我们需要从多个方面进行深入剖析。…...

git上新down下来的项目,前端启动报错npm ERR! code 1 npm ERR! path E:\code\vuehr\node_modul

解决方法在下面 问题1&#xff1a;> vuehr0.1.0 serve > vue-cli-service serve vue-cli-service 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 在项目目录下执行命令npm i -D vue/cli-service来安装vue/cli-service依赖。 运行gitee上下载的…...

oc中的数据结构在都在什么位置

数据结构 在Objective-C中&#xff0c;数据结构可以存在于以下几个位置&#xff1a; 堆&#xff08;Heap&#xff09;&#xff1a;堆是动态分配的内存空间&#xff0c;用于存储动态创建的对象和数据结构。堆上的数据需要手动进行内存管理&#xff0c;即手动分配和释放内存。 …...

多云世界中的 API 治理

随着企业不断拥抱数字化转型&#xff0c;许多企业正在采用多云战略&#xff0c;以充分利用不同云平台的独特优势和功能。这种方法使企业能够避免被供应商锁定&#xff0c;提高灵活性&#xff0c;并优化 IT 成本。然而&#xff0c;在多个云平台上管理应用程序接口并非易事。它带…...

【稳定检索/投稿优惠】2024年环境、资源与区域经济发展国际会议(ERRED 2024)

2024 International Conference on Environment, Resources and Regional Economic Development 2024年环境、资源与区域经济发展国际会议 【会议信息】 会议简称&#xff1a;ERRED 2024 大会地点&#xff1a;中国杭州 会议官网&#xff1a;www.icerred.com 会议邮箱&#xff1…...

生成式 AI——ChatGPT、Dall-E、Midjourney 等算法理念探讨

1.概述 艺术、交流以及我们对现实世界的认知正在迅速地转变。如果我们回顾人类创新的历史&#xff0c;我们可能会认为轮子的发明或电的发现是巨大的飞跃。今天&#xff0c;一场新的革命正在发生——弥合人类创造力和机器计算之间的鸿沟。这正是生成式人工智能。 生成模型正在模…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...