使用 Python 第三方库 xlrd 读取 Excel 中的数据

本文介绍了如何在Python中使用xlrd库来读取Excel文件,包括安装xlrd库、打开工作簿和工作表、读取单个和多个单元格数据,以及获取所有单元格数据的方法。同时,还分享了Python学习资源和实战案例的相关链接。
摘要由CSDN通过智能技术生成

1. 安装 xlrd 库

Python 读取 Excel 中的数据主要用到 xlrd 第三方库。xlrd 其实就是两个单词的简化拼接,我们可以把它拆开来看,xl 代表 excel, rd 代表 read, 合并起来就是 xlrd, 意思就是读 excel 的第三方库。 这种命名风格也正是我们推荐使用的,要做到 “顾名思义”,不要使用晦涩难懂,与所实现的功能毫无关联的名称。 OK, 废话不多说了,下面我们就着手安装 xlrd 库,pip 命令如下:

pip install xlrd==1.2.0 -i https://mirrors.aliyun.com/pypi/simple

值得注意的是,我在安装 xlrd 库的时候,指定了 xlrd 的版本,即 xlrd==1.2.0, 这也是在实践中积累的经验哦,因为不指定版本总是会有各种状况,为了确保不出错,大家尽量按照我这样安装吧。否则,出错可别找我哦!

2. 使用 xlrd 库

2.1 打开 Excel 工作表对象

(咳咳,战术咳嗽!) 首先,我们先梳理一下思路,把概念搞清楚。什么概念呢?就是大家知道什么是工作簿,什么是工作表,什么是单元格吗? 平时我们说的 Excel 工作表文件,其实严格来说它是个工作簿。然后打开工作簿,里面有多个 Sheet, 我们把这个称作 ”工作表“。之后,我们的数据是放在单元格里面的。 下面,让我们再用图片的形式展示,一起要分清概念。 工作簿: 在这里插入图片描述 工作表: 在这里插入图片描述 单元格: 在这里插入图片描述

好的,那么使用 xlrd 读取 Excel 表中的数据的时候也应按照:工作簿 -> 工作表 -> 单元格,这样的过程去读取数据的。 那么,打开工作对象的代码如下:

import xlrd

# 打开工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 三种方式获取工作表
# worksheet = workbook.sheet_by_index(0)
# worksheet = workbook.sheets()[0]        
worksheet = workbook.sheet_by_name('Sheet1')

代码解析:

  1. 首先导入安装的第三方库 xlrd.
  2. 之后,使用 xlrd 库下的方法 open_workbook(), 打开一个工作簿,方法里的参数为工作簿的路径。
  3. 最后,根据拿到的工作簿对象,指定获取的工作表。当然了,获取工作表的方法有三种,分别是根据索引和根据工作表名称获取,索引是从0开始的。只要使用一种方式即可,这里我推荐使用根据工作表名称获取。

2.2 读取单个单元格数据

那么我们在上一小节打开了工作表对象之后,下面就要获取表里的单元格数据了呀!如何获取单元格数据呢?请看下面的代码:

import xlrd

# 打开工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 获取工作表
worksheet = workbook.sheet_by_name('Sheet1')
# 获取单元格数据的两种方式
# cell_value = worksheet.cell(0, 0).value
cell_value = worksheet.cell_value(0, 0)
print(cell_value)

代码解析: 获取单元格数据的方法也很简单。这里提供了两种方法,都可以获取单元格数据,大家只要根据自己习惯,掌握一种即可。例如,我这里使用的是 cell_value() 方法,方法里传递的是单元格的索引。单元格的索引是二维的,第一个参数是所在行,第二个参数是所在列。需要注意的是,所有的索引都是从 0 开始计数的。

2.3 读取多个单元格数据

上一小节中,我们使用了 cell_value() 方法获取单个单元格数据,但是这种方式未免效率过于低下了,现在我们想一次性获取整行或者整列的数据,该如何去做呢 ?请看下面的代码:

import xlrd

# 打开工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 获取工作表
worksheet = workbook.sheet_by_name('Sheet1')
# 获取第一行所有单元格数据
row_value = workbookt.row(0)
# 获取第一列所有单元格数据
col_value = workbook.col(0)

代码解析: 与 2.2 小节不同的是,我们通过调用方法 row() 和 col() 分别获取某行和某列所有单元格数据,row() 和 col() 内传入的参数为索引,索引从 0 开始计数。例如,row(0) 表示获取第一行所有单元格数据,row(1) 表示获取第二行所有单元格数据。 那么我们运行上面的代码段,运行结果如下所示:

[text:'班级', text:'学号', text:'姓名', text:'成绩']  # row(0) 的结果值
[text:'班级']     # col(0) 的结果值

通过观察运行结果,我们发现运行的结果都是以列表的形式展示的。值得注意的是,列表的数值并不是字典格式,尽管这和 Python 中字典格式完全一样,实际上列表中元素的类型应该是 <class 'xlrd.sheet.Cell'>, 这是 xlrd 中的 cell 对象,即单元格对象。单元格对象有 value 属性,因此我们可以通过遍历列表获得每一个 cell 对象,然后通过 value 属性取出每一个 cell 的值。 改造后的代码如下所示:

import xlrd

# 打开工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 获取工作表
worksheet = workbook.sheet_by_name('Sheet1')

for i in worksheet.row(0):
    print(i.value)  # 获取单元格数据
for i in worksheet.col(0):
    print(i.value)  # 获取单元格数据

2.3 读取所有单元格数据

在上一小节中,我们学习了获取多个单元格数据,也就是整行或整列获取数据,这样获取数据的粒度更大,效率自然也更高。那么如果说,我想获取 Sheet 表中所有的数据又该怎么做呢? 要想获取 Sheet 表中所有单元格数据,就得知道 Sheet 表有多少行以及多少列。这样,我们根据行数和列数,才能获取 Sheet 表所有数据啊。xlrd 中 worksheet 对象有两个属性 nrows 和 ncols, 它们分别表示当前的 Sheet 表的行数和列数。 获取所有单元格数据的代码如下所示:

import xlrd

# 打开工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 获取工作表
worksheet = workbook.sheet_by_name('Sheet1')
# 根据行获取所有单元格数据
for row in range(worksheet.nrows):
    for i in worksheet.row(row):
        print(i.value)
# 根据列获取单元格数据  
for col in range(worksheet.ncols):
    for i in worksheet.col(col):
        print(i.value)

代码解析: 上面的代码中,输出的结果应该都是所有单元格数据,只不过分别从行和列的角度出发获取单元格数据。其实,还可以用 cell_value() 方法结合 nrows 和 ncols 属性获取所有单元格数据,这种方法留给大家自己去尝试吧!

3. 总结

通过上面的学习,相信大家对 xlrd 第三方库的安装以及使用第三方库读取 Excel 中的数据的方法有了一定的掌握。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值