32-读取Excel数据(xlrd)

        本篇介绍如何使在python中读取excel数据。

一、环境准备

        先安装xlrd模块,打开cmd,输入 pip install xlrd 在线安装。

二、基本操作

import xlrd# 打开excel表格
data = xlrd.open_workbook('test.xlsx')# 2.获取sheet表格
# 方式一:通过索引顺序获取
# table = data.sheets()[0] 或 table = data.sheet_by_index(0)
# 方式二:通过名称获取
table = data.sheet_by_name(u'Sheet1')# 3.获取总行数和总列数
nrows = table.nrows
ncols = table.ncols# 4.获取某行或某列的值
print(table.row_values(0))  # 获取第一行值
print(table.col_values(0)) # 获取第一列值

三、在excel中存放数据

1)在test.excel中存放数据,第一行为标题。

2)如果test.excel中的数据有纯数字,一定要右键 > 设置单元格格式 > 文本格式,不然读取的数据是浮点数。(先设置单元格的格式,然后在单元格中编辑数据,编辑成功单元格的左上角有个小三角图标,如下图红色箭头所示)

四、读取数据

        将读取到的数据放在list列表中,列表中的元素是字典类型。

import xlrdclass ExcelUtil():def load_excel(self, excelPath, sheetName):self.data = xlrd.open_workbook(excelPath)self.sheet = self.data.sheet_by_name(sheetName)# 1.获取第一行作为keyself.keys = self.sheet.row_values(0)# 2.获取总行数self.rowNums = self.sheet.nrows# 3.获取总列数self.colNums = self.sheet.ncolsdef get_data(self):res = []j = 1for i in range(self.rowNums - 1):dict = {}values = self.sheet.row_values(j)for idx in range(self.colNums):dict[self.keys[idx]] = values[idx]res.append(dict)j += 1return resif __name__ == '__main__':excelPath = 'test.xlsx'sheetName = 'Sheet1'excelObj = ExcelUtil()excelObj.load_excel(excelPath, sheetName)print(excelObj.get_data())

五、执行报错

        在执行上述代码时,报错:xlrd.biffh.XLRDError: Excel xlsx file; not supported

1)原因分析

        在Python中使用xlrd库读取.xlsx文件时报错,无法读取。这是由于当前Python中的xlrd版本过高导致的,高版本只支持.xls文件,删除了对.xlsx文件的读取方法。

2)解决办法

        因此,只需要重装xlrd即可,win+R打开cmd,输入下文,即可解决该问题。

pip3 install xlrd==1.2.0

六、执行结果

        重新安装xlrd后,代码可正常执行。执行结果如下:

[{'username': 'zhangsan', 'password': '123456789'},{'username': 'lisi', 'password': '666666666'},{'username': 'wangwu', 'password': '888888888'},{'username': 'amdin', 'password': 'admin'}]

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

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

相关文章

RocketMq详解:二、SpringBoot集成RocketMq

在上一章中我们对Rocket的基础知识、特性以及四大核心组件进行了详细的介绍,本章带着大家一起去在项目中具体的进行应用,并设计将其作为一个工具包只提供消息的分发服务和业务模块进行解耦 在进行本章的学习之前,需要确保你的可以正常启动和…

【算法篇】滑动窗口的最大值JavaScript版

滑动窗口的最大值 题目描述: 给定一个长度为 n 的数组 num 和滑动窗口的大小 size ,找出所有滑动窗口里数值的最大值。 例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值…

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.4 添加GPU和Framebuffer显示设备

1. 概述 上一章节我们已经成功的移植完busybox,到此,我们已经把我们Naruto-Pi的基本功能全部实现了,接下来,我们会不断探索,引入一些高级驱动,哇咔咔,真厉害,本章节比较简单,我们使用之前我们的8组virtio,我们就用其中一组模拟GPU,由于GPU我没深入了解过,所以我们…

[FFmpeg学习]初级的SDL播放mp4测试

在之前的学习中,通过AVFrame来保存为图片来认识了AVFrame, [FFmpeg学习]从视频中获取图片_ffmpeg 获取图片-CSDN博客 在获取到AVFrame时,还可以调用SDL方法来进行展现,实现播放效果。 参考资料 SDL,ffmpeg实现简单…

MySQL中的数据库约束

目录 导读: 约束类型 1、not null(不能为空) 2、unique(唯一) 3、default(默认值约束) 4、primary key(唯一)与unique 相同点: 不同点: auto_increment: 5、foreign key(外键) 语法形式&#xff…

康姿百德集团公司官网床垫价格透明,品质睡眠触手可及

选择康姿百德床垫,价格透明品质靠谱,让你拥有美梦连连 在当今社会,良好的睡眠质量被越来越多的人所重视。睡眠不仅关系到我们第二天的精力状态,更长远地影响着我们的身体健康。因此,选择一款合适的床垫对于获得优质睡…

损失函数(Loss Function)

损失函数(Loss Function)是机器学习领域中一个至关重要的概念,用于衡量模型预测结果与真实结果之间的误差程度。 一、定义 损失函数或代价函数是将随机事件或其相关随机变量的取值映射为非负实数的函数,以表示该随机事件的“风险…

antdv 穿梭框

antd的穿梭框的数据貌似只接收key和title,而且必须是字符串(我测试不是字符串的不行), 所以要把后端返回的数据再处理一下得到我们想要的数据 除了实现简单的穿梭框功能,还想要重写搜索事件,想达到的效果是…

FastAPI:在大模型中使用fastapi对外提供接口

通过本文你可以了解到: 如何安装fastapi,快速接入如何让大模型对外提供API接口 往期文章回顾: 1.大模型学习资料整理:大模型学习资料整理:如何从0到1学习大模型,搭建个人或企业RAG系统,如何评估…

LibreOJ #10131. 「一本通 4.4 例 2」暗的连锁 题解 树上差分

暗的连锁 题目描述 Dark 是一张无向图,图中有 N 个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark 有 N−1 条主要边,并且 Dark 的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark 还有 M…

解决!word转pdf时,怎样保持图片不失真

#今天用word写了期末设计报告,里面有很多过程的截图,要打印出来,想到pdf图片不会错位,就转成了pdf,发现图片都成高糊了,找了好多方法,再不下载其他软件和插件的情况下,导出拥有清晰的…

BarTender 常见的使用要点

BarTender 简述 BarTender是由美国海鸥科技(Seagull Scientific)推出的一款条码打印软件,被广泛应用于标签、条形码、证卡和RFID标记的设计和打印领域。它在全球范围内拥有众多用户,被公认为标签打印方面的全球领先者。BarTender…

JavaScript基础用法(变量定义、输入输出、转义符、注释和编码规范)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

conda实现根据序号创建、删除或激活虚拟环境(实用脚本)

不知道用过conda的朋友,你们是否有这样一个困扰,在创建和删除与切换虚拟环境的时候,总感觉很麻烦,有时候,命令又记不住,有没有一个简单的方法,来简化我们的操作,比如通过一个脚本帮我实现,进行控制台交互,就可以轻松实现,conda的创建,激活与删除操作,而不需要记住…

对比 JSON 和 Hessian2 的序列化格式

关于服务通信,我了解到Spring Cloud LoadBalancer 和 Dubbo 的数据传输方式有所不同。它们分别使用不同的协议和技术栈来实现服务之间的通信。 他们两者对比可知: 特性Spring Cloud LoadBalancerDubbo主要协议HTTP/RESTDubbo 协议(默认&…

史上最详细四叉树地图不同技术应用和代码详解

四叉树地图在计算机和机器人领域应用的很广,但是初学者可能会发现四叉树地图有各种不同的实现方式,很多在机器人领域不适用或是在计算机存储领域不适用。今天我就讲解下各类四叉树的实现方式和应用场景。 史上最详细四叉树地图不同技术应用和代码详解 本…

vue3+ts webVTT与JSON之前格式互转

vue interface Cue {startTime: stringendTime: stringcontent: string// 可以根据需要添加其他属性,如样式、行号等 } /** desc WebVtt转 JSON */ export function parseWebVTT(vttContent: any): Cue[] {const cues: Cue[] []if (!vttContent) {return []}const …

Bio-Info每日一题:Rosalind-06-Counting Point Mutations

🎉 进入生物信息学的世界,与Rosalind一起探索吧!🧬 Rosalind是一个在线平台,专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战,帮助用户从基础到高级掌握生物信息学知识。无论你是初…

详解MySQL的MVCC机制

多版本并发控制(MVCC,Multi-Version Concurrency Control)是MySQL InnoDB存储引擎用于实现事务隔离和提高并发性能的一种机制。MVCC通过在同一数据的多个版本之间进行管理,允许读写操作并发进行,从而避免了传统锁机制带…

Navicat导入json文件(json文件数据导入到MySQL表中)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…