python中xlrd模块的使用详解


Posted in Python onFebruary 01, 2021

一、xlrd的安装

打开cmd输入pip install xlrd安装完成即可

python中xlrd模块的使用详解

二、xlrd模块的使用

下面以这个工作簿为例

python中xlrd模块的使用详解

1、导入模块

import xlrd

2、打开工作薄

# filename是文件的路径名称
workbook = xlrd.open_workbook(filename=r'C:\Users\Windows10\Desktop\xlsx文件.xlsx')

3、获取需要操作的sheet表格(有三种方法)

①通过索引获取

# 获取第一个sheet表格
table = workbook.sheets()[0]

②通过索引顺序获取

# 通过索引顺序获取
table = workbook.sheet_by_index(0)

③通过sheet名称获取

# 通过sheet名称获取
table = workbook.sheet_by_name(sheet_name='Sheet1')

补充:获取工作薄中所有sheet名称

# 获取工作薄中所有的sheet名称
names = workbook.sheet_names()

打印结果
['Sheet1', 'Sheet2', 'Sheet3']

三、行和列的操作

常用1:获取sheet中有多少行和多少列

# 获取sheet中有效行数
row = table.nrows
print(row)
打印结果6
# 获取sheet中有效列数
col = table.ncols
print(col)

打印结果
4

常用2:获取一行中有多少列数据

# 返回该行的有效单元格长度
num = table.row_len(0)
print(num)

打印结果
4

常用3:获取指定行或者列中所有的数据

# rowx表示是获取第几行的数据
# start_col表示从索引为多少开始,end_colx表示从索引为多少结束,
# end_colx为None表示结束没有限制
# 获取指定行中的数据并以列表的形式返回
table_list = table.row_values(rowx=0, start_colx=0, end_colx=None)
print(table_list)

打印结果
['渡劫(送千万元宝)', '新手礼包', '主角技能书*20,三级攻击石*2,萌新相框*1', 'nesHtg6Y']
# colx表示是获取第几列的数据
# start_rowx表示从索引为多少开始,end_rowx表示从索引为多少结束,
# end_rowx为None表示结束没有限制
# 获取指定列中的数据并以列表的形式返回
table_list = table.col_values(colx=0, start_rowx=0, end_rowx=None)
print(table_list)

打印结果
['渡劫(送千万元宝)', '渡劫(送千万元宝)', '渡劫(送千万元宝)', '渡劫(送千万元宝)', '名扬沙城-杀猪爆充值', '名扬沙城-杀猪爆充值']

补充:了解即可

#返回由该列中所有的单元格对象组成的列表
print(table.row(0)) 
#返回由该行中所有的单元格对象组成的列表
print(table.row_slice(0)) 
#返回由该行中所有单元格的数据类型组成的列表
print(table.row_types(0, start_colx=0, end_colx=None)) 

打印结果
[text:'渡劫(送千万元宝)', text:'新手礼包', text:'主角技能书*20,三级攻击石*2,萌新相框*1', text:'nesHtg6Y']
[text:'渡劫(送千万元宝)', text:'新手礼包', text:'主角技能书*20,三级攻击石*2,萌新相框*1', text:'nesHtg6Y']
array('B', [1, 1, 1, 1])
#返回由该列中所有的单元格对象组成的列表
print(table.col(0, start_rowx=0, end_rowx=None)) 
#返回由该列中所有的单元格对象组成的列表
print(table.col_slice(0, start_rowx=0, end_rowx=None)) 
#返回由该列中所有单元格的数据类型组成的列表
print(table.col_types(0, start_rowx=0, end_rowx=None)) 

打印结果
[text:'渡劫(送千万元宝)', text:'渡劫(送千万元宝)', text:'渡劫(送千万元宝)', text:'渡劫(送千万元宝)', text:'名扬沙城-杀猪爆充值', text:'名扬沙城-杀猪爆充值']
[text:'渡劫(送千万元宝)', text:'渡劫(送千万元宝)', text:'渡劫(送千万元宝)', text:'渡劫(送千万元宝)', text:'名扬沙城-杀猪爆充值', text:'名扬沙城-杀猪爆充值']
[1, 1, 1, 1, 1, 1]

四、单元格的操作

1、获取单元中的值

# 获取指定单元格内的值
value = table.cell_value(rowx=0, colx=1)
print(value)

打印结果
新手礼包

2、获取单元格内的组成对象和数据

value = table.cell(rowx=0, colx=1)
print(value)

打印结果
text:'新手礼包'

3、获取单元格的数据类型

python读取excel中单元格的内容返回的有5种类型。ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error。即date的ctype=3,这时需要使用xlrd的xldate_as_tuple来处理为date格式,先判断表格的ctype=3时xldate才能开始操作。

value = table.cell_type(rowx=0, colx=1)
print(value)

五、案例

需求:获取上面表格中的数据并依次打印出来

import xlrd

# 打开工作薄
workbook = xlrd.open_workbook(r'C:\Users\Windows10\Desktop\xlsx文件.xlsx')
# 获取第一个sheet表格
table = workbook.sheets()[0]
# 获取行数
rows = table.nrows
# 获取列数
cols = table.ncols
# 循环获取每行的数据
for row in range(rows):
 for col in range(cols):
  value = table.cell_value(row, col)
  print('第{}行{}列的数据为:{}'.format(row, col, value))

打印结果
第0行0列的数据为:渡劫(送千万元宝)
第0行1列的数据为:新手礼包
第0行2列的数据为:主角技能书*20,三级攻击石*2,萌新相框*1
第0行3列的数据为:nesHtg6Y
第1行0列的数据为:渡劫(送千万元宝)
第1行1列的数据为:特权礼包
第1行2列的数据为:翅膀进阶丹*20,翅膀技能书*10,萌新气泡*1
第1行3列的数据为:QqBSc7VJ
第2行0列的数据为:渡劫(送千万元宝)
第2行1列的数据为:独家礼包
第2行2列的数据为:高级生命精华*10,升星石*20,法宝灵纹石*10
第2行3列的数据为:NqsEdtBt
第3行0列的数据为:渡劫(送千万元宝)
第3行1列的数据为:预约礼包
第3行2列的数据为:高级攻击精华*10,生命神兵印记包*5,老司机气泡*1
第3行3列的数据为:P22vY6wa
第4行0列的数据为:名扬沙城-杀猪爆充值
第4行1列的数据为:万元青龙
第4行2列的数据为:凌霄青龙*1
第4行3列的数据为:NB999
第5行0列的数据为:名扬沙城-杀猪爆充值
第5行1列的数据为:尊贵VIP11
第5行2列的数据为:5元*2、神羽*20、斗笠石(中)*20
第5行3列的数据为:VIP999

到此这篇关于python中xlrd模块的使用详解的文章就介绍到这了,更多相关python xlrd模块内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Django中使用Sitemap的方法讲解
Jul 22 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
python导入坐标点的具体操作
May 10 Python
Python中turtle库的使用实例
Sep 09 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Python类和实例的属性机制原理详解
Mar 21 Python
Python flask路由间传递变量实例详解
Jun 03 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
新手必备Python开发环境搭建教程
May 28 Python
python随机打印成绩排名表
Jun 23 Python
python中使用np.delete()的实例方法
Feb 01 #Python
flask框架中的cookie和session使用
Jan 31 #Python
Flask处理Web表单的实现方法
Jan 31 #Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 #Python
Django中template for如何使用方法
Jan 31 #Python
python中os.remove()用法及注意事项
Jan 31 #Python
python os.listdir()乱码解决方案
Jan 31 #Python
You might like
文章推荐系统(三)
2006/10/09 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
用javascript实现自定义标签
2007/05/08 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
Python实现的ini文件操作类分享
2014/11/20 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
python 监控logcat关键字功能
2020/09/04 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
毕业学生推荐信
2013/12/01 职场文书
自荐书范文
2013/12/08 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
小学见习报告
2015/06/23 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技