一、xlrd的安装

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

二、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 xlrd课程_python中xlrd模块的使用详解相关推荐

  1. python argparse模块详解_python中argparse模块用法实例详解

    本文实例讲述了python中argparse模块用法.分享给大家供大家参考.具体分析如下: 平常在写命令行工具的时候,经常会带参数,所以用python中的argparse来实现. # -*- codi ...

  2. python中产生随机数模块_Python中random模块生成随机数详解

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  3. python中sn的意思_Python中random模块生成随机数详解

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  4. python中random模块中包含了随机数相关的功能函数_Python中random模块生成随机数详解...

    print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20 print random.randint(20, 20) #结果永远是20 #pr ...

  5. python accept解析_python中requests库使用方法详解

    一.什么是Requests Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库.它⽐ urllib 更加⽅便,可以节约我们⼤量的 ...

  6. python itertools卡死_python中的itertools的使用详解

    今天了解了下python中内置模块itertools的使用,熟悉下,看能不能以后少写几个for,嘿嘿

  7. python map用法_Python中 map()函数的用法详解

    python map()函数问题 使用map()函数生成一个值D但是检测D的长度时,只能测一次,一次之后D似不知道你的dataSet 是什么数据,是否是从数据库取出来的结果游标, 如果是的 那么dat ...

  8. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  9. python中selenium模块驱动谷歌详解

    python中selenium模块驱动谷歌详解 Selenium的介绍.配置和调用 Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中 ...

最新文章

  1. SQL中变量的赋值-select
  2. dump文件的生成及的分析
  3. webgl 基础渲染demo_游戏引擎养成《二》 引入跨平台渲染库
  4. 海华模组:WIFI、BT、SoC模组列表
  5. java接口开发 全局异常,全局异常处理
  6. 程序员面试金典 - 面试题 08.03. 魔术索引(二分递归)
  7. 下载ueditor-1.1.3.jar源码和源代码
  8. matlab对图像进行傅里叶变换_数字图像处理(一)—— 傅里叶变换
  9. Unix下C程序内存泄露检测工具:valgrind的安装使用
  10. python实例26[计算MD5]
  11. 职业技能鉴定准考证打印系统
  12. 微软智能云Azure在华新增数据中心区域正式启用
  13. LEDE 源码下载与编译
  14. Cain 不能显示外接网卡问题解决
  15. 2016,初入江湖,尚未见刀光剑影
  16. BFC、文档流、脱离文档流
  17. Revit二次开发之族库管理系统
  18. 开车的26条教训!开车的人一定看看!
  19. 大智能时代,人工智能的研究热点是什么?
  20. 什么是图灵机及图灵完备(一)

热门文章

  1. IOS15之swift的Alamofire 5.4框架的网络封装
  2. android.os.build修改,Android的os.BuildID对应的SDK版本号以及SDK版本号与APILevel对应关系.docx...
  3. beatsx白灯闪三下开不了机_beats X耳机不开机维修,beatsx耳机闪白灯是什么问题...
  4. ospf实验及原理(ensp)
  5. java中什么是守护线程_什么是Java的守护线程?
  6. goland go test_七天用Go写个docker(第一天)
  7. 使用git提交项目到码云
  8. QImage、 QPixmap、 QBitmap、 QPicture区别
  9. Android开发面试题Service之startService和bindService之间的区别
  10. Android开发之百度地图定位以及简单覆盖物的实现