python中xlrd模块的使用详解

作者:宣小飞 时间:2021-02-13 12:05:27 

一、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

来源:https://blog.csdn.net/xuanfeifei/article/details/113427815

标签:python,xlrd模块
0
投稿

猜你喜欢

  • 利用Python提取图片经纬度并锁定拍照地点

    2021-10-18 01:10:40
  • ASP连接Access数据库和SQL server数据库的方法

    2007-08-22 13:16:00
  • 基于python list对象中嵌套元组使用sort时的排序方法

    2022-11-04 03:38:21
  • 使用堆实现Top K算法(JS实现)

    2024-06-17 00:38:07
  • Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置

    2024-04-19 09:45:02
  • 详解用Python实现自动化监控远程服务器

    2021-02-14 15:50:57
  • 仿china.nba.com焦点图轮播展示效果(ie6,ff)

    2008-04-21 12:54:00
  • Python实现利用163邮箱远程关电脑脚本

    2023-08-29 10:08:08
  • python中关于eval函数的使用及说明

    2023-03-02 14:28:35
  • Websocket IM聊天教程 教你用GoEasy快速实现IM聊天

    2023-10-04 08:52:52
  • PyTorch实现多维度特征输入逻辑回归

    2022-08-08 02:56:41
  • SQL语句 一个简单的字符串分割函数

    2011-10-24 20:06:33
  • python:解析requests返回的response(json格式)说明

    2023-11-05 15:43:25
  • 解决Pandas的DataFrame输出截断和省略的问题

    2021-10-28 10:22:19
  • 可输入的select代码

    2009-12-26 18:25:00
  • python利用pandas分析学生期末成绩实例代码

    2023-12-13 19:29:08
  • MySQL修改默认存储引擎的实现方法

    2024-01-20 07:51:11
  • Pandas时间数据处理详细教程

    2022-04-29 03:14:22
  • javascript 兼容所有浏览器的DOM扩展功能

    2024-04-16 09:52:04
  • 你可能不知道的Python 技巧小结

    2022-12-18 07:08:10
  • asp之家 网络编程 m.aspxhome.com