首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2023年07月 Python自动化办公之xlrd读取excel

【愚公系列】2023年07月 Python自动化办公之xlrd读取excel

作者头像
愚公搬代码
发布2025-05-28 15:49:03
发布2025-05-28 15:49:03
23800
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行

前言

python中能操作Excel的库主要有以下9种:

本文主要针对xlrd读取excel进行详细介绍

一、xlrd读取excel

1.xlrd模块介绍

1.1 什么是xlrd模块

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。

xlrd是用于读取Excel文件。它支持读取和解析Excel文件,包括.xls和.xlsx格式的文件。

1.2 为什么使用xlrd模块

在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。

xlrd模块可以用于读取Excel的数据,速度非常快,推荐使用!

官方文档:https://xlrd.readthedocs.io/en/latest/

2.安装xlrd模块

到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

或者使用pip或conda命令安装xlrd库:

代码语言:javascript
代码运行次数:0
运行
复制
pip install xlrd

我这里是anaconda自带有xlrd

3.使用介绍

常用单元格的数据类型

代码语言:javascript
代码运行次数:0
运行
复制
empty(空的)
string(text)
number
date
boolean
error
blank(空白表格)

1、导入模块

在Python程序中导入xlrd库:

代码语言:javascript
代码运行次数:0
运行
复制
import xlrd

2、打开Excel文件

使用open_workbook()函数打开Excel文件,并将其分配给一个变量:

代码语言:javascript
代码运行次数:0
运行
复制
workbook = xlrd.open_workbook('example.xlsx')#文件名以及路径,如果路径或者文件名有中文给前面加一个 r

其中’example.xlsx’是Excel文件的路径和文件名。

3、获取sheet对象

使用sheet_by_index()函数获取sheet对象。可以根据sheet的索引或名称来获取:

代码语言:javascript
代码运行次数:0
运行
复制
sheet = workbook.sheets()[0] 
sheet = workbook.sheet_by_index(0) #根据索引获取sheet对象
sheet = workbook.sheet_by_name('Sheet1') #根据名称获取sheet对象
# 以上三个函数都会返回一个xlrd.sheet.Sheet()对象
names = data.sheet_names()        #返回book中所有工作表的名字
data.sheet_loaded(sheet_name or indx)    # 检查某个sheet是否导入完毕

4、读取单元格数据

使用cell_value()函数读取单元格的数据。可以根据行和列的索引来获取单元格:

代码语言:javascript
代码运行次数:0
运行
复制
cell_value = sheet.cell(rowx,colx)
# 返回单元格对象

cell_value = sheet.cell_type(rowx,colx)
# 返回对应位置单元格中的数据类型

cell_value = sheet.cell_value(rowx,colx)

5、行的操作

代码语言:javascript
代码运行次数:0
运行
复制
nrows = sheet.nrows
# 获取该sheet中的行数,注,这里table.nrows后面不带().

sheet.row(rowx)
# 返回由该行中所有的单元格对象组成的列表,这与tabel.raw()方法并没有区别。

sheet.row_slice(rowx)
# 返回由该行中所有的单元格对象组成的列表

sheet.row_types(rowx, start_colx=0, end_colx=None)
# 返回由该行中所有单元格的数据类型组成的列表;    
# 返回值为逻辑值列表,若类型为empy则为0,否则为1

sheet.row_values(rowx, start_colx=0, end_colx=None)
# 返回由该行中所有单元格的数据组成的列表

sheet.row_len(rowx)
# 返回该行的有效单元格长度,即这一行有多少个数据

6、列的操作

代码语言:javascript
代码运行次数:0
运行
复制
ncols = sheet.ncols
# 获取列表的有效列数

sheet.col(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有的单元格对象组成的列表

sheet.col_slice(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有的单元格对象组成的列表

sheet.col_types(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有单元格的数据类型组成的列表

sheet.col_values(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有单元格的数据组成的列表

7、循环读取数据

可以使用for循环遍历每个单元格来读取数据:

代码语言:javascript
代码运行次数:0
运行
复制
for i in range(sheet.nrows):
    for j in range(sheet.ncols):
        cell_value = sheet.cell_value(i, j)

以上是使用xlrd库读取Excel文件的基本操作。除了上述操作,还可以使用其他函数来获取Excel文件中的数据,例如:

  • row_values(): 获取行数据
  • col_values(): 获取列数据
  • sheet_names(): 获取所有sheet的名称
  • sheet_loaded(): 判断sheet是否已经加载 需要注意的是,xlrd只能读取Excel文件,不能修改或创建Excel文件。如果需要编辑Excel文件,可以使用openpyxl库。

4.实战训练

我们先在表格放入以下数据,点击保存:

使用xlrd模块进行读取:

注意:读取xlsx文件新版本会报错,需要按照pip install xlrd==1.2.0Python版本<3.9

代码语言:javascript
代码运行次数:0
运行
复制
import xlrd

xlsx = xlrd.open_workbook(r'./期初期末盘点数据.xlsx')

# 通过sheet名查找:xlsx.sheet_by_name("sheet1")
# 通过索引查找:xlsx.sheet_by_index(3)
table = xlsx.sheet_by_index(0)

# 获取单个表格值 (2,1)表示获取第3行第2列单元格的值
value = table.cell_value(2, 1)
print("第3行2列值为",value)

# 获取表格行数
nrows = table.nrows
print("表格一共有",nrows,"行")

# 获取第4列所有值(列表生成式)
name_list = [str(table.cell_value(i, 3)) for i in range(1, nrows)]
print("第4列所有的值:",name_list)

列表生成式介绍:

列表生成式学习链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017317609699776

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、xlrd读取excel
    • 1.xlrd模块介绍
      • 1.1 什么是xlrd模块
      • 1.2 为什么使用xlrd模块
    • 2.安装xlrd模块
    • 3.使用介绍
    • 4.实战训练
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档