POI:对Excel的基本读操作 整理2
1 简单读取操作
public class ExcelRead {String PATH = "D:\\Idea-projects\\POI\\POI_projects";// 读取的一系列方法// ......
}
因为07版本和03版本操作流程大差不差,所以这边就以03版本为例
@Testpublic void testRead03() throws IOException {//获取文件流FileInputStream fileInputStream = new FileInputStream(PATH + "xiexu03.xls");//1.创建一个工作簿,获取到文件中的内容Workbook workbook = new HSSFWorkbook(fileInputStream);// 2.得到表,获取具体位置的内容Sheet sheet = workbook.getSheetAt(0);// 3.得到行Row row = sheet.getRow(0);// 4.得到列Cell cell = row.getCell(1);// System.out.println(cell.getStringCellValue()); // 得到单元格中的字符串内容System.out.println(cell.getNumericCellValue()); // 得到单元格中的数字内容fileInputStream.close();}


2 分类型读取数据
读取下列含有不同数据类型的Excel表格,并输出读取的数据

@Testpublic void testCellType() throws IOException {//获取文件流FileInputStream fileInputStream = new FileInputStream("D:\\Idea-projects\\POI\\明细表.xls");//1.创建一个工作簿Workbook workbook = new HSSFWorkbook(fileInputStream);Sheet sheet = workbook.getSheetAt(0);// 2. 获取标题内容Row rowTitle = sheet.getRow(0);if (rowTitle != null) {// 这种写法一定要掌握int cellCount = rowTitle.getPhysicalNumberOfCells(); // 读取所有有数据的单元格数量for (int cellNum = 0; cellNum < cellCount; cellNum++) {Cell cell = rowTitle.getCell(cellNum);if (cell != null) {CellType cellType = cell.getCellType();String cellValue = cell.getStringCellValue();System.out.print(cellValue + " | ");}}System.out.println();}// 获取表中的内容int rowCount = sheet.getPhysicalNumberOfRows(); // 获取所有含有数据的行的数量for (int rowNum = 1; rowNum < rowCount; rowNum++) {Row rowData = sheet.getRow(rowNum);if (rowData != null) {// 读取行中的列int cellCount = rowTitle.getPhysicalNumberOfCells();for (int cellNum = 0; cellNum < cellCount; cellNum++) {System.out.print("[" + (rowNum + 1) + "-" + (cellNum + 1) + "]");Cell cell = rowData.getCell(cellNum);// 匹配列的数据类型if ( cell != null) {CellType cellType = cell.getCellType();String cellValue = "";switch (cell.getCellType()) {case STRING:System.out.println("字符串");cellValue = cell.getStringCellValue();break;case BLANK:System.out.println("空");break;case BOOLEAN:System.out.println("布尔");cellValue = String.valueOf(cell.getBooleanCellValue());break;case NUMERIC:System.out.println("数字"); // 分为日期和普通数字if (DateUtil.isCellDateFormatted(cell)) {System.out.println("日期");Date date = cell.getDateCellValue();DateTime time = new DateTime(date);cellValue = time.toString("yyyy-MM-dd");} else{// 普通数字 -> 转换为字符串输出System.out.println("转换为字符串输出");cell.setCellType(CellType.STRING); // 需要设置类型为字符串cellValue = cell.toString();}break;case ERROR:System.out.println("数据类型错误");break;}System.out.println(cellValue);}}}}fileInputStream.close();}



3 读取公式

@Testpublic void testReadCalculate() throws IOException { // 公式//获取文件流FileInputStream fileInputStream = new FileInputStream("D:\\Idea-projects\\POI\\公式.xls");//1.创建一个工作簿Workbook workbook = new HSSFWorkbook(fileInputStream);// 2.得到表Sheet sheet = workbook.getSheetAt(0);// 3.得到行Row row = sheet.getRow(4);// 4.得到列Cell cell = row.getCell(0);// 拿到计算公式FormulaEvaluator formulaEvaluator = new HSSFFormulaEvaluator((HSSFWorkbook) workbook);// 输出单元格的内容CellType cellType = cell.getCellType();switch (cell.getCellType()) {case FORMULA:System.out.println("公式");String formula = cell.getCellFormula(); // 获取计算公式System.out.println(formula);// 计算CellValue evaluate = formulaEvaluator.evaluate(cell);String cellValue = evaluate.formatAsString(); // 将计算结果格式化为字符串// 输出System.out.println(cellValue);break;}fileInputStream.close();}


相关文章:
POI:对Excel的基本读操作 整理2
1 简单读取操作 public class ExcelRead {String PATH "D:\\Idea-projects\\POI\\POI_projects";// 读取的一系列方法// ...... } 因为07版本和03版本操作流程大差不差,所以这边就以03版本为例 Testpublic void testRead03() throws IOException {//获取…...
LeetCode每周五题_2024/01/15~01/19
文章目录 82. 删除排序链表中的重复元素 II题目题解 2744. 最大字符串配对数目题目题解 82. 删除排序链表中的重复元素 II 82. 删除排序链表中的重复元素 II 题目 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字…...
免费chartGPT网站汇总
https://s.suolj.com - (支持文心、科大讯飞、智谱等国内大语言模型,Midjourney绘画、语音对讲、聊天插件)国内可以直连,响应速度很快 很稳定 https://seboai.github.io - 国内可以直连,响应速度很快 很稳定 http://gp…...
【分布式微服务专题】SpringSecurity OAuth2快速入门
目录 前言阅读对象阅读导航前置知识笔记正文一、OAuth2 介绍1.1 使用场景*1.2 基本概念(角色)1.3 优缺点 二、OAuth2的设计思路2.1 客户端授权模式2.1.0 基本参数说明2.1.1 授权码模式2.1.2 简化(隐式)模式2.1.3 密码模式2.1.4 客…...
Spring Boot实现国际化
src\main\resources\i18n\messages_zh_CN.properties message.hello你好,世界! message.welcome欢迎! src/main/resources/i18n/messages_en_US.properties message.helloHello World! message.welcomeWelcome! 默认语言 src\main\resources\…...
面试题之ElasticSearch
面试题之ElasticSearch 1.es的基础知识2. es的集群、节点、分片、副本分片的定义?3. es为什么快?4. 倒排索引的原理是什么?5. es的segment是什么?6. es的分段存储和分段索引的概念及区别?7. 索引相关的问题?…...
第10章 通信业务
文章目录 10.1.1 通信行业1、通信行业的界定2、通信行业的特点 10.1.2 通信企业10.1.3 通信终端1、通信终端的分类2、终端发展趋势 10.2.1 通信业务的定义及分类10.2.2 基础电信业务1、第一类基础电信业务A11 固定通信业务A12 蜂窝移动通信业务A13 第一类卫星通信业务A14 第一类…...
c++ 指针的安全问题
指针是一个强大的工具,但它们可能导致多种安全问题。接下来我们一起研究一下会出现的安全问题。欢迎大家补充说明!!! 悬挂指针(也称为悬空指针或迷途指针) 是指向一块已经释放或无效内存的指针。悬挂指针…...
高质量训练数据助力大语言模型摆脱数据困境 | 景联文科技
目前,大语言模型的发展已经取得了显著的成果,如OpenAI的GPT系列模型、谷歌的BERT模型、百度的文心一言模型等。这些模型在文本生成、问答系统、对话生成、情感分析、摘要生成等方面都表现出了强大的能力,为自然语言处理领域带来了新的突破。 …...
elasticsearch查询
(1)简单查询 curl -XGET http://127.0.0.1:9201/_search curl -XGET http://127.0.0.1:9201/test231208/_search curl -XGET http://127.0.0.1:9201/test231208/_doc/_search curl -XGET http://127.0.0.1:9201/test231208/_doc/id (2&…...
Vue + JS + tauri 开发一个简单的PC端桌面应用程序
Vue JS tauri 开发一个简单的PC端桌面应用程序 文章目录 Vue JS tauri 开发一个简单的PC端桌面应用程序1. 环境准备1.1 安装 Microsoft Visual Studio C 生成工具[^2]1.2 安装 Rust[^3] 2. 使用 vite 打包工具创建一个 vue 应用2.1 使用Vite创建前端Vue项目2.2 更改Vite打包…...
7.5 MySQL对数据的增改删操作(❤❤❤)
7.5 MySQL对数据的基本操作 1. 提要2. 数据添加2.1 insert语法2.2 insert 子查询2.3 ignore关键字 3. 数据修改3.1 update语句3.2 update表连接 4. 数据删除4.1 delete语句4.2 delete表连接4.3 快速删除数据表全部数据 1. 提要 2. 数据添加 2.1 insert语法 2.2 insert 子查询 …...
kibana查看和展示es数据
本文来说下使用kibana查看和展示es数据 文章目录 数据准备查询所有文档示例kibana查看和展示es数据 数据准备 可以使用es的命令或者java程序来往,es进行新增数据 查询所有文档示例 在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:92…...
若依修改侧边栏
引用:https://blog.csdn.net/Sabrina_cc/article/details/125871591 子菜单选中后,文字和背景改变: .el-submenu__title i{color: #e8e8e8 !important;} #app .sidebar-container .theme-dark .nest-menu .el-submenu .is-active > .el-su…...
Linux篇之Centos中将系统时间设置为本地时间
要在 CentOS 上将系统时间设置为本地时间,可以按照以下步骤进行操作: 1.首先,你需要确定你想要设置的本地时间。例如,如果你想要将系统时间设置为当前时间(假设是北京时间),则可以使用以下命令获…...
翼龙-2H无人机
一、概述 翼龙-2,是成都飞机工业集团研制的无人驾驶飞行器,是空中侦察、精确打击和应急通讯的平台。成都飞机工业集团于2015年9月的北京国际航空航天展览会上介绍了翼龙-2的概念。在2016年珠海航展期间,翼龙-2的原型机首次向公众展示。 因为…...
解析Transformer模型
原文地址:https://zhanghan.xyz/posts/17281/ 进入Transformer RNN很难处理冗长的文本序列,且很容易受到所谓梯度消失/爆炸的问题。RNN是按顺序处理单词的,所以很难并行化。 用一句话总结Transformer:当一个扩展性极佳的模型和一…...
【深度学习】RTX2060 2080如何安装CUDA,如何使用onnx runtime
文章目录 如何在Python环境下配置RTX 2060与CUDA 101. 安装最新的NVIDIA显卡驱动2. 使用conda安装CUDA Toolkit3. 验证onnxruntime与CUDA版本4. 验证ONNX需求版本5. 安装ONNX与onnxruntime6. 编写ONNX推理代码 如何在Python环境下配置RTX 2060与CUDA 10 RTX 2060虽然是一款较早…...
力扣刷MySQL-第二弹(详细解析)
🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:力扣刷题讲解-MySQL 🍹文章作者技术和水平很有限,如果文中出…...
LiveGBS流媒体平台GB/T28181功能-基础配置接入控制白名单黑名单配置控制设备安全接入设备单独配置接入密码
LiveGBS基础配置接入控制白名单黑名单配置控制设备安全接入设备单独配置接入密码 1、白名单配置应用场景2、接入控制2.1、白名单2.2、黑名单 3、搭建GB28181视频直播平台 1、白名单配置应用场景 LiveGBS国标流媒体服务,支持白名单配置。 可在设备注册前࿰…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
