程序设计之——手把手教你如何从Excel文件中读取学生信息
在当今信息化时代,计算机技术已经深入到各个领域,而程序设计则成为推动信息化建设的关键技术之一。在众多领域中,学生信息管理系统无疑是其中一个重要的应用。本文将从学生信息管理系统的开发入手,探讨开如何高效且保证质量的完成开发。
假设有一个学生信息管理系统,需要从Excel文件中读取学生的姓名、年龄、成绩等数据,并将这些数据存储到系统中进行进一步的处理和管理。
具体来说,在数据导入/导出系统中调用这个函数,并传入Excel文件作为参数,就可以得到包含学生信息的结果。然后,可以对这个结果进行进一步的处理,比如将学生数据存储到数据库中或进行其他业务逻辑操作。
不同的定制化的数据处理需求场景可能有细微的细节差异,从头开始写又太繁琐,这时候:
1)想好大致的需求,询问FuncGPT
比如输入需求:
读取EXCEL数据,入参: File file,出参:List<Map<String, Object>>
获得完整的代码。
// 类名:ExcelDataReader
// 函数名:readExcelData
// 函数功能:读取Excel数据并返回List<Map<String, Object>>类型的结果
// POM依赖包:
// <dependency>
// <groupId>org.apache.poi</groupId>
// <artifactId>poi</artifactId>
// <version>4.1.2</version>
// </dependency>
// <dependency>
// <groupId>org.apache.poi</groupId>
// <artifactId>poi-ooxml</artifactId>
// <version>4.1.2</version>
// </dependency>
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExcelDataReader {
/**
* 读取Excel数据并返回List<Map<String, Object>>类型的结果
* @param file Excel文件
* @return Excel数据的List<Map<String, Object>>结果
* @throws IOException 当读取Excel文件出现错误时抛出IOException
*/
public static List<Map<String, Object>> readExcelData(File file) throws IOException {
List<Map<String, Object>> dataList = new ArrayList<>(); // 创建存储Excel数据的List
FileInputStream fis = new FileInputStream(file); // 创建文件输入流
Workbook workbook = WorkbookFactory.create(fis); // 创建Workbook对象
Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
int rowCount = sheet.getLastRowNum(); // 获取行数
Row headerRow = sheet.getRow(0); // 获取标题行
int columnCount = headerRow.getLastCellNum(); // 获取列数
for (int i = 1; i <= rowCount; i++) { // 遍历每一行(跳过标题行)
Row row = sheet.getRow(i);
Map<String, Object> rowData = new HashMap<>();
for (int j = 0; j < columnCount; j++) { // 遍历每一列
Cell cell = row.getCell(j);
String columnName = headerRow.getCell(j).getStringCellValue(); // 获取列名
Object cellValue;
switch (cell.getCellType()) { // 根据单元格类型获取单元格值
case STRING:
cellValue = cell.getStringCellValue();
break;
case NUMERIC:
cellValue = cell.getNumericCellValue();
break;
case BOOLEAN:
cellValue = cell.getBooleanCellValue();
break;
case FORMULA:
cellValue = cell.getCellFormula();
break;
default:
cellValue = null;
}
rowData.put(columnName, cellValue); // 将列名和单元格值存入rowData
}
dataList.add(rowData); // 将rowData存入dataList
}
workbook.close(); // 关闭Workbook对象
fis.close(); // 关闭文件输入流
return dataList; // 返回Excel数据的结果
}
}
// 函数示例
// 读取Excel数据示例
// 入参:file,Excel文件
// 出参:dataList,Excel数据的List<Map<String, Object>>结果
// 调用示例:
// File file = new File("data.xlsx");
// List<Map<String, Object>> dataList = ExcelDataReader.readExcelData(file);
// System.out.println(dataList);
// 输出结果:例如,Excel数据为:
// | Name | Age | Grade |
// |-------|-----|-------|
// | Alice | 18 | A |
// | Bob | 20 | B |
// 则输出结果为:[{Name=Alice, Age=18, Grade=A}, {Name=Bob, Age=20, Grade=B}]
// 表示Excel数据被封装为List<Map<String, Object>>的格式
2)根据FuncGPT的代码进行修改
由于EXCEL整体格式内容的话,会影响读取有效行或者有效列的真实数据,故需要对行和列进行相关有效校验。在原有代码的基础上,做一些修改:
①首先判断列,因为列的真实长度会影响到行的读取;
②读取第一行表头,如果遇到空白列,则认定有效列为上一个列的下标。
③获取到有效列之后 去遍历每一行数数据,如果有整行为空则跳出循环,结束数据获取。
随着软件行业的快速发展,在提升软件效率的基础上,软件质量已经成为了至关重要的问题。一款高质量的软件不仅能够提高用户满意度,还能够降低维护和升级成本,为企业带来长期效益。免费使用链接:https://c.suo.nz/7Pfvh
相关文章:
程序设计之——手把手教你如何从Excel文件中读取学生信息
在当今信息化时代,计算机技术已经深入到各个领域,而程序设计则成为推动信息化建设的关键技术之一。在众多领域中,学生信息管理系统无疑是其中一个重要的应用。本文将从学生信息管理系统的开发入手,探讨开如何高效且保证质量的完成…...
Docker容器化技术(从零学会Docker)
文章目录 前言一、初识Docker1.初识Docker-Docker概述2.初识Docker-安装Docker3.初识Docker-Docker架构4.初识Docker-配置镜像加速器 二、Docker命令1.Docker命令-服务相关命令2.Docker命令-镜像相关命令3.Docker命令-容器相关命令 三、Docker容器的数据卷1.Docker容器数据卷-数…...
【新版】系统架构设计师 - 案例分析 - 总览
个人总结,仅供参考,欢迎加好友一起讨论 架构 - 案例分析 - 总览 新旧大纲对应 旧版新版系统规划软件架构设计设计模式系统设计系统建模分布式系统设计嵌入式系统设计系统的可靠性分析与设计系统的安全性和保密性设计系统计划信息系统架构的设计理论和实…...
【Git】02-Git常见应用
文章目录 1. 删除不需要分支2. 修改最新Commit的Message3. 修改之前Commit的Message4. 连续多个Commit整理为一个5. 不连续的Commit整理为一个6. 比较暂存区和HEAD中文件差异7. 比较工作区和暂存区中文件差异8. 将暂存区恢复为HEAD相同9. 工作区文件恢复和暂存区相同10. 取消暂…...
YOLO物体检测-系列教程2:YOLOV2整体解读
🎈🎈🎈YOLO 系列教程 总目录 YOLOV1整体解读 YOLOV2整体解读 YOLOV2提出论文:YOLO9000: Better, Faster, Stronger 1、YOLOV1 优点:快速,简单!问题1:每个Cell只预测一个类别&…...
u盘传输数据的时候拔出会怎么样?小心这些危害
U盘是我们日常生活和工作中常使用的一种便携式存储设备。然而,在使用U盘传输数据时,有时我们会不小心将它拔出,而这个看似微不足道的行为实际上可能会带来严重的后果。本文将向您介绍U盘在传输数据时突然拔出可能导致的各种危害,其…...
【踩坑纪实】URL 特殊字符 400 异常
URL 特殊字符 400 异常 笔者之前在写后端或者前端时,在处理表单时,经常有对特殊字符的检验处理,但自己也不清楚为什么要这么做,浅浅地以为可能是特殊字符不好看或者存取可能会造成异常?不过一直没遇到过问题ÿ…...
Contents:帮助公司为营销目的创建内容
【产品介绍】 名称 Contents上线时间 2017年5月 具体描述 Contents是一家提供基于人工智能的内容生成平台的企业,可以帮助用户在各种网站和工具中使用最先进的机器学习模型,实现视频编辑、图像生成、3D建模等内容创作。【团队介绍…...
1397: 图的遍历——广度优先搜索
题目描述 广度优先搜索遍历类似于树的按层次遍历的过程。其过程为:假设从图中的某顶点v出发,在访问了v之后依次访问v的各个未曾被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先…...
Java 华为真题-选修课
需求: 现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的…...
Invalid access token: Invalid header string: ‘utf-8‘ codec can‘t decode byte
报错:在运行一个txt文档时报Invalid access token: Invalid header string: ‘utf-8’ codec can’t decode byte 原因:文档编码方式的原因,电脑默认的是UFT-8格式的编码 解决方法:用notepad改一下文档编码就好...
Java 中将多个 PDF 文件合并为一个 PDF
一.前言 我们将从以下两个方面向您展示如何将多个PDF文件合并为一个PDF: 1. 将文件中的多个 PDF 合并为单个 PDF 2. 将流中的多个 PDF 合并为单个 PDF 1. 了解 Spire.PDF 库 要在 Java 中合并 PDF 文件,我们将使用Spire.PDF 库。Spire.PDF for Java 是…...
python经典百题之水仙花数
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为1531的三次方+5的三次方+3的三次方。 方法一:暴…...
jvm的调优工具
1. jps 查看进程信息 2. jstack 查看进程的线程 59560为进程id 产生了死锁就可以jstack查看了 详细用途可以看用途 3. jmap 如何使用dump文件看下 查看 4.jstat 空间占用和次数 5. jconsole可视化工具 各种使用情况,以及死锁检测 6. visualvm可视化工具…...
C语言--字符串旋转笔试题
C语言–字符串旋转笔试题 文章目录 C语言--字符串旋转笔试题一、字符串左旋1.1 思路11.2 思路1代码1.3 思路21.4 思路2代码 二、字符串旋转结果判断2.1 思路12.2 思路2 一、字符串左旋 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字…...
IntelliJ IDEA使用_常规设置
文章目录 版本说明主题设置取消检查更新依赖自动导入禁止import xxx.*、允许import内部类显示行号、方法分割线、空格代码提示(匹配所有字母)自定义注释颜色添加头部注释自定义字体设置字符编码关联本地GitJDK编译版本Maven配置Tomcat配置代码注释设置头…...
ResponseBodyAdvice 获取参数
废话不多说,简练,一针见血,解决问题,才是最好的。 首先肯定是重写了这个beforeBodyWrite方法 重点来了,获取请求参数: request.getBody()返回一个inputStream流,这里你可以 使用很多方法把这个…...
人力资源服务升级正当时,法大大助力佩信集团加速数字化
人力资源服务业是现代服务业的一个重要门类,在促进就业创业、提供人才服务方面发挥重要作用。同时面对产业转型升级、平台经济快速发展、企业用工成本提高等新形势,发展人力资源服务业对于促进社会化就业、更好发挥我国人力资源优势、服务经济社会发展具…...
UG\NX二次开发 二维向量相加
文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 二维向量相加 效果: 代码: #include "me.hpp"void doIt() {const double vec1[2] = { 1.0,2.0 };const double vec2[2] = { 2.0,2.…...
RabbitMQ深入 —— 持久化和发布确认
前言 前面的文章荔枝梳理了如何去配置RabbitMQ环境并且也介绍了两种比较简单的运行模式,在这篇文章中荔枝将会继续梳理有关RabbitMQ的持久化机制以及发布确认模式的相关知识,希望能够帮助到大家~~~ 文章目录 前言 一、持久化 1.1 队列持久化 1.2 消息…...
掌握大模型Function Call能力:小白程序员必学训练秘籍(收藏版)
大模型的Function Call能力并非与生俱来,而是通过两个关键训练阶段——SFT和RLHF——精心培养的。SFT通过大量包含工具调用样本的监督微调,让模型学会如何输出结构化JSON调用请求;而RLHF则通过人类反馈强化学习,教会模型何时该调用…...
castAR混合现实头显:从光学投影到空间锚定的技术解析
1. 项目概述:从Kickstarter到技术现实,castAR的独特魅力2013年,当Oculus Rift在虚拟现实领域掀起第一波热潮时,一封来自技术爱好者的邮件,将一个名为castAR的项目推到了我的视野中心。这不仅仅是一个头戴显示设备&…...
PvZ Toolkit终极指南:5分钟掌握植物大战僵尸PC版最强修改器
PvZ Toolkit终极指南:5分钟掌握植物大战僵尸PC版最强修改器 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 植物大战僵尸PC版玩家们,你是否想过拥有无限阳光、免费种植、自定…...
如何高效评估ChatGLM3对话系统:全面测试用户体验与任务成功率的实用指南
如何高效评估ChatGLM3对话系统:全面测试用户体验与任务成功率的实用指南 【免费下载链接】ChatGLM3 ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型 项目地址: https://gitcode.com/gh_mirrors/ch/ChatGLM3 ChatGLM3作为开源双语对话语言…...
一文看懂:什么是大语言模型
在过去很长一段时间里,计算机只是“执行命令的工具”。但这两年,一种新的技术正在改变这一切——它不仅能理解人类语言,还能写文章、写代码,甚至和你对话。从 ChatGPT 到 DeepSeek,再到 Claude 和 Gemini,“…...
别再傻傻分不清!用Python+Matplotlib手把手教你画出NBI和WBI的频谱与时频图
用PythonMatplotlib实战解析NBI与WBI的频谱与时频特性 在信号处理领域,窄带干扰(NBI)和宽带干扰(WBI)的区分对雷达系统、通信工程等应用至关重要。理论教材中复杂的数学公式常常让初学者望而生畏,而可视化呈现能瞬间让抽象概念变得直观可感。本文将带您用…...
基于MCP与多准则决策的数据中心智能选址系统设计与实践
1. 项目概述:数据中心选址智能决策的现代解法最近在做一个挺有意思的项目,客户是一家大型互联网公司,他们计划在海外新建一个大型数据中心,但面对全球几十个潜在选址,从土地成本、电力供应、网络延迟到政策风险&#x…...
Midjourney Minwa风格终极调试手册:7类常见失效场景(水墨晕染失真、线条断裂、文化符号错位)及对应--stylize动态补偿值
更多请点击: https://intelliparadigm.com 第一章:Midjourney Minwa风格的本质解构与美学基因图谱 Minwa(民画)风格源自朝鲜半岛传统民间绘画,其核心并非写实再现,而是以象征性构图、平涂色块、非透视空间…...
Loop:基于Swift开发的macOS窗口管理框架解决方案
Loop:基于Swift开发的macOS窗口管理框架解决方案 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 在macOS桌面环境中,多窗口管理一直是效率工作流的关键瓶颈。传统的手动拖拽操作…...
[STM32U3] 【每周分享】【STM32U385RG 测评】+调试串口通讯,字符串打印
接着上一回,这会进行串口打印实验 一、查询原理图,找到我们需要配置的串口 如上图:PA9、PA10、USART1 二、按流程打开IDE软件,建立新的工程文件。 配置如下:debug、RCC、USART1 配置完成后就可以生成代码了 三、代…...
