使用 Apache POI 更新/覆盖 特定的单元格

使用 Apache POI 更新特定的单元格

  • 一. 需求
  • 二. 实现
  • 三. 效果

一. 需求

将以下表中第4行,第4列的单元格由“张宇”更新为“汤家凤”,并将更行后的结果写入新的Excel文件中;

在这里插入图片描述

二. 实现

使用Apache POI,可以精确定位到需要更改的单元格!高定制化的场景有时可能不适合用easyExcel;

步骤:

  • 由 file 依次 获取 workbook、sheet、row、cell;
  • 更新 cell;
  • 关闭 输入流,用新文件的path创建输出流;
  • 将更改后的 workbook 通过输出流 写入 新文件;
  • 关闭 workbook和输出流。
import org.apache.poi.xssf.usermodel.*;
import org.junit.Test;
import java.io.*;public class poiTest {@Testpublic void update() throws Exception{String sourceFile = "C:\\Users\\liziq\\Desktop\\student.xlsx"; // 原文件String newFile = "C:\\Users\\liziq\\Desktop\\student-new.xlsx"; // 更新后的新文件// 创建输入流FileInputStream fileInputStream = new FileInputStream(sourceFile);// 获取 workbookXSSFWorkbook wb = new XSSFWorkbook(fileInputStream);// 获取 sheetXSSFSheet sheet = wb.getSheetAt(0);// 获取单元格(index是从0开始)XSSFRow row = sheet.getRow(3);XSSFCell cell = row.getCell(3);// 更新单元格cell.setCellValue("汤家凤");// 关闭输入流fileInputStream.close();// 创建输出流FileOutputStream fileOutputStream=new FileOutputStream(newFile);// 将 workbook 写入 newFilewb.write(fileOutputStream);// 关闭workbook和输出流wb.close();fileOutputStream.close();}
}

三. 效果

生成“student-new.xlsx”,教高数的变成了“汤家凤”!
在这里插入图片描述

在这里插入图片描述

参考:
https://blog.csdn.net/zouxiongqqq/article/details/78478298

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

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

相关文章

Python项目——久坐提醒定时器(Pyinstaller)打包

1、介绍 书接上回:Python项目——久坐提醒定时器(PySide6)上-CSDN博客本文使用Pyinstaller将编写的程序打包为exe可执行文件。 2、过程 参考:python pyinstaller 打包exe文件,(附带图片 自己、别人电脑…

JSP简单学习

jsp是在html中嵌入java代码 jsp也是在j2ee服务端中的java组件 第一次运行 在第一次运行jsp代码时会经历以下步骤,将jsp转为java代码,将java代码转为class文件。 所以通常会比较慢,编译后就好多了。 四大作用域 requestsessionpageapplica…

LLM之幻觉(二):大语言模型LLM幻觉缓减技术综述

LLM幻觉缓减技术分为两大主流,梯度方法和非梯度方法。梯度方法是指对基本LLM进行微调;而非梯度方法主要是在推理时使用Prompt工程技术。LLM幻觉缓减技术,如下图所示: LLM幻觉缓减技术值得注意的是: 检索增强生成&…

软件测试|如何使用selenium操作窗口滚动条

简介 我们在进行自动化测试工作的时候,如果页面内容过多,一次性加载耗时太长的话,会使用分段加载来加载页面内容,比如开始只加载页面顶端的内容,而如果要加载更多的数据,就需要我们向下滑动,让…

REVIT二次开发生成三维轴网

步骤1 确定轴网 步骤2 生成3D轴网 using System; using System.Collections.Generic; using System.Linq; using System.Text;

【程序人生】研二上快结束了~整理最近的思路

看一下自己的《每日科研进展》群聊,把最近做的事情和后面要做的事情整理一下思路。 1月1日到1月7日 在整理NoC Router执行流程和Chisel环境Setup流程: NoC Router执行流程 Chisel安装流程总结: 先安装jdk,配置环境变量安装sbt…

Eureka整合seata分布式事务

文章目录 前言一、Seata配置1.1、Seata下载1.2、修改conf目录中 flie.conf 文件1.3、修改conf目录中 registry.conf文件1.4、初始化seata数据库 二、微服务整合Seata2.1、父工程项目创建引入依赖 2.2、Eureka集群搭建2.3、搭建账户微服务2.3.1 新建seata-account-service微服务…

深度学习实战69-语义分割任务实战中Unet模型的搭建、结构说明与模型训练全过程

大家好,我是微学AI,今天给大家介绍一下深度学习实战69-语义分割任务实战中Unet模型的搭建、结构说明与模型训练全过程,U-Net是一种专为医学图像分割设计的卷积神经网络。它由Olaf Ronneberger等人在2015年提出,并迅速在生物医学图像分析领域获得广泛应用。U-Net模型的特点是…

青阳龙野网络文件传输系统Docker版

青阳龙野网络文件传输系统Docker版 基于底包debian:bookworm-slim制作 一键拉取命令如下: docker run -idt \ -p 8080:8080 \ -v /data:/kiftd-1.1.1-release/filesystem \ -v /kiftd/conf:/kiftd-1.1.1-release/conf \ -e TZAsia/Shanghai \ --privilegedtrue \…

Matlab深度学习进行波形分割(二)

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家…

React快速入门(一)基础与语法

React快速入门(一)基础与语法React的介绍和特点React组件化的封装React数据事件处理JSX语法React事件绑定React条件渲染React列表渲染 React快速入门(一)基础与语法 用于构建用户界面的JavaScript库目前国内外最流行的三大框架&a…

【概述版】悲剧先于解析:在大型语言模型的新时代,历史重演了

这篇论文探讨了大型语言模型(LLM)的成功对自然语言处理(NLP)领域的影响,并提出了在这一新时代中继续做出有意义贡献的方向。作者回顾了2005年机器翻译中大型语法模型的第一个时代,并从中汲取教训和经验。他…