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 相关文章推荐
使用Python编写Linux系统守护进程实例
Feb 03 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
解析Python编程中的包结构
Oct 25 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python rstrip()方法实例详解
Nov 11 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 Python
python 网络编程要点总结
Jun 18 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
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
php如何连接sql server
2015/10/16 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
Python的requests网络编程包使用教程
2016/07/11 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
英国香水店:The Perfume Shop
2017/03/27 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
体育老师的教学自我评价分享
2013/11/19 职场文书
办理护照介绍信
2014/01/16 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
Python内置的数据类型及使用方法
2022/04/13 Python
Python如何让字典保持有序排列
2022/04/29 Python