32-读取Excel数据(xlrd)

news2024/11/8 20:29:32

        本篇介绍如何使在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 xlrd

class ExcelUtil():
    def load_excel(self, excelPath, sheetName):
        self.data = xlrd.open_workbook(excelPath)
        self.sheet = self.data.sheet_by_name(sheetName)
        # 1.获取第一行作为key
        self.keys = self.sheet.row_values(0)
        # 2.获取总行数
        self.rowNums = self.sheet.nrows
        # 3.获取总列数
        self.colNums = self.sheet.ncols

    def get_data(self):
        res = []
        j = 1
        for 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 += 1
        return res

if __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.coloradmin.cn/o/1809012.html

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

相关文章

【Java基础】多线程开发

Java多线程编程学习笔记 Author: Jim.kk Video: Bilibili 文章目录 Java多线程编程学习笔记学习路线简介程序、进程与线程的关系JVM简介 | 多线程在JVM中的执行示例CPU 线程的调度方式多线程的意义并行与并发 创建多线程 1 | Thread 与 Runnable方式 1 | 继承 Thread 类方式 …

spool 管道 小文件 mknod

Spool File In SQL*PLUS in Multiple Small Files ? (Doc ID 2152654.1)​编辑To Bottom In this Document Goal Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 12.1.0.2 [Release 10.2 to 12.1] Oracle Database Cloud Schema Service…

【机器学习】基于卷积LSTM的视频预测

1. 引言 1.1 LSTM是什么 LSTM(Long Short-Term Memory)是一种特殊的循环神经网络(RNN)变体,旨在解决传统RNN在处理长序列数据时遇到的梯度消失和梯度爆炸问题。LSTM通过引入门控机制和细胞状态的概念,使得…

表格状态码转换,其他索引串转成名字

1.问题分析 原数据库 关联指标为数字串的形式,每个小数对应的是另一张表index的属性,我们想知道对应指标的名称,怎么在这里下面这种形式呢? 两种思路: 1.修改在后端处理,把后端关联指标部分修改成图二的…

来腾讯第4天,我已经焦虑昏了啊!

大家好,我是白露啊。 今天在看到一个实习生在抱怨,给我笑惨了。 标题是:“腾讯实习第4天,焦虑昏了”! 他写道:“怎么办啊牛爷爷们,什么都不会。业务看不懂,文档看不懂,…

el-table 实现表头置顶【干货满满】附源码

a)一般情况下,想要在 ElTable 上实现表头固定,滑动滚动条时希望表头常显,不被滚动条顶上去。这时候就需要给表格添加高度,但是这个高度需要提前确定好,不是很方便,表格上边一段距离不是固定的,常…

codeforce round951 div2

A guess the maximum 问题&#xff1a; 翻译一下就是求所有相邻元素中max - 1的最小值 代码&#xff1a; #include <iostream> #include <algorithm>using namespace std;const int N 5e4;int a[N]; int n;void solve() {cin >> n;int ans 0x3f3f3f3f;…

一个简单好用的 C# Easing Animation 缓动动画类库

文章目录 1.类库说明2.使用步骤2.1 创建一个Windows Form 项目2.2 安装类库2.3 编码2.4 效果 3. 扩展方法3.1 MoveTo 动画3.2 使用回调函数的Color动画3.3 属性动画3.4 自定义缓动函数 4.该库支持的内置缓动函数5.代码下载 1.类库说明 App.Animations 类库是一个很精炼、好用的…

RT-DETR 详解之查询去噪( DeNoise)

引言 前面我们已经讲解了RT-DETR的基本结构与Efficient Hybrid Encoder部分&#xff0c;在这篇博客里&#xff0c;博主将主要记录RT-DETR的第二个创新点&#xff1a;Uncertainty-minimal Query Selection 查询向量选择为什么重要&#xff1f; 关于 Query Selection&#xff0…

使用WGCLOUD监测进程的cpu和内存使用情况

WGCLOUD是一款国产免费的运维平台&#xff0c;可以监测很多指标数据&#xff0c;我们在这篇文章主要描述如何使用WGCLOUD监测进程 其实官网的进程使用描述也比较清楚&#xff0c;看看 进程应用、中间件监测使用说明&#xff08;对我们关注的业务系统、中间件、进程进行实时监测…

计网总结☞网络层

.................................................. 思维导图 ........................................................... 【Wan口和Lan口】 WAN口&#xff08;Wide Area Network port&#xff09;&#xff1a; 1)用于连接外部网络&#xff0c;如互联…

[chisel]马上要火的硬件语言,快来了解一下优缺点

Chisel是什么&#xff1f; Chisel的全称为Constructing Hardware In a Scala Embedded Language&#xff0c;是一个基于Scala的DSL&#xff08;Domain Specific Language&#xff0c;特定领域专用语言&#xff09;。2012年&#xff0c;加州大学伯克利分校&#xff08;UC Berkel…

大话设计模式解读02-策略模式

本篇文章&#xff0c;来解读《大话设计模式》的第2章——策略模式。并通过Qt和C代码实现实例代码的功能。 1 策略模式 策略模式作为一种软件设计模式&#xff0c;指对象有某个行为&#xff0c;但是在不同的场景中&#xff0c;该行为有不同的实现算法。 策略模式的特点&#…

Mysql的底层实现逻辑

Mysql5.x和Mysql8性能的差异 整体性能有所提高&#xff0c; 在非高并发场景下&#xff0c;他们2这使用区别不大&#xff0c;性能没有明显的区别。 只有高并发时&#xff0c;mysql8才体现他的优势。 2. Mysql数据存储结构Innodb逻辑结构 数据选用B树结构存储数据&#xff0…

IDEA去除代码和XML中的波浪线(黄色警告线)

通常情况下&#xff0c;IDE自带的侦测功能会帮我们提示一些错误、警告等。但这对于强迫症患者来说并不友好。以下是去除IDE代码和XML文件中的波浪线&#xff08;黄色警告线&#xff09;、拯救强迫症患者的有效方案 1、去除XML中的波浪线 2、去除代码中的波浪线 关爱强迫症患者…

QT 信号和槽 通过自定义信号和槽沟通 如何自定义槽和信号的业务,让它们自动关联 自定义信号功能

通过信号和槽机制通信&#xff0c;通信的源头和接收端之间是松耦合的&#xff1a; 源头只需要顾自己发信号就行&#xff0c;不用管谁会接收信号&#xff1b;接收端只需要关联自己感兴趣的信号&#xff0c;其他的信号都不管&#xff1b;只要源头发了信号&#xff0c;关联该信号…

C语言学习系列:GCC编译器Windows版本MinGW-w64的安装教程

本文图文分享如何安装C语言编译器——MinGW-w64。 只要看到这篇文章&#xff0c;就可以按照文中步骤正确安装MinGW-w64并使用。 一、什么是 MinGW-w64 &#xff1f; 我们知道C语言是高级语言&#xff0c;必须编译为二进制文件&#xff0c;才能为计算机运行&#xff0c;MinGW…

每日两题7

文章目录 买卖股票的最佳时机含冷冻期买卖股票的最佳时机含手续费 买卖股票的最佳时机含冷冻期 分析&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();vector<vector<int>> dp(n, vector<int>(3…

path[1][0] path[1][1:-1] [path[1][-1] 分别怎么取的

假设的输入数据 假设 path 变量如下&#xff1a; path [path, [10515194, _derivationally_related_form, 00265386, _derivationally_related_form, 00800940, _hypernym, 00798245, _derivationally_related_form, 02589576]]示例代码 为了更清楚地展示这些操作&#xff…

OSFP 1类LSA详解

概述 上图为1类LSA的实际报文结构 , 在开始之前一定需要说明 , 1类LSA是OSPF中最复杂的LSA类型 , 在LSA头部的文章中详细介绍了 LS Type / Link State ID / Adv Router 3种头部字段 , 在1类LSA的主体内容中还存在类似的字段十分的相似 , 很多网络从业者难以理解的点就在于此 , …