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国标流媒体服务,支持白名单配置。 可在设备注册前࿰…...
乙巳马年·皇城大门春联生成终端W安全部署实践:网络配置与访问控制
乙巳马年皇城大门春联生成终端W安全部署实践:网络配置与访问控制 最近在星图GPU平台上部署了一个挺有意思的AI应用,叫“皇城大门春联生成终端W”。说白了,就是一个能根据你的要求,自动生成各种风格春联的AI模型。部署过程本身不难…...
清北博雅考研集训营:沉浸式封闭备考,为考研人铺就上岸之路
考研的赛道上,从来都不缺努力的人,缺的是科学的规划、优质的师资和沉浸式的备考环境。清北博雅教育集团深耕考研辅导领域十余载,凭借专业的教学体系、大咖级师资团队、完善的教学服务和亮眼的上岸成果,打造了专属考研人的集训营备…...
P3C黄山版突破式迁移指南:无缝升级Java代码规范检查体系
P3C黄山版突破式迁移指南:无缝升级Java代码规范检查体系 【免费下载链接】p3c Alibaba Java Coding Guidelines pmd implements and IDE plugin 项目地址: https://gitcode.com/gh_mirrors/p3/p3c 在Java开发团队中,代码规范检查工具的升级往往伴…...
2025.12晶晨S905L3S-L3SB安卓9通刷实战:当贝桌面加持,解锁多品牌盒子新玩法
1. 晶晨S905L3S-L3SB通刷包的前世今生 第一次听说晶晨S905L3S-L3SB芯片能通刷时,我正对着家里三台不同品牌的电视盒子发愁。这些盒子有的来自运营商赠送,有的是二手市场淘来的,虽然硬件配置相近,但系统体验天差地别。直到发现这个…...
系统架构设计师常见高频考点总结之计算机网络
学习这些网络题目时,可以将网络层次结构想象成高速公路系统:核心层是连接城市的大型立交桥和主干道,追求极速转发;汇聚层是出口闸机,负责检查通行证(安全过滤)和分流;而接入层则是通…...
系统架构设计师常见高频考点总结之数据库
1. 局部数据库缓存1.1. 如何避免单点故障?(高可用设计)只要题目提到“避免单点故障”或“高可靠性”,标准答案只有一套组合拳:冗余(Redundancy):一台不够就两台。热备(Ho…...
Mermaid Live Editor:代码驱动图表设计的终极解决方案
Mermaid Live Editor:代码驱动图表设计的终极解决方案 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor…...
5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题
5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…...
护士执业资格考试历年真题及答案解析电子版PDF(2011-2025年)
2026年护士执业资格考试时间为2026年4月11-12日。为助力广大考生高效备考,小编精心整理了涵盖2011年至2025年的护士执业资格考试真题试卷及详细答案解析,包含《专业实务》和《实践能力》,高清PDF电子版,可打印,方便…...
YOLOv12模型轻量化实战:应对嵌入式设备资源约束
YOLOv12模型轻量化实战:应对嵌入式设备资源约束 最近几年,目标检测模型在精度上突飞猛进,但随之而来的是模型体积和计算量的急剧膨胀。当你兴冲冲地想把最新的YOLOv12模型部署到Jetson Nano或者树莓派上时,往往会发现现实很骨感&…...
