Python中的xlrd模块使用整理


Posted in Python onJune 15, 2021

1.简述:

xlrd是读取excel表格数据;

支持 xlsx和xls 格式的excel表格;

三方模块安装方式:pip3 install xlrd;

模块导入方式: import xlrd

2.xlrd模块的基本操作

Xler的操作主要分两步:
其一时获取book对象,
其二book对象再次进行excel的读取操作。

2.1打开excel文件获取book对象

xlrd.open_workbook(filename[,logfile,file_contents,…])

如果filename 文件名不存在,则会报错 FilenotFoundError。

如果filename 文件名存在,则会返回一个xrld.book.Book 对象。 import xlrd

Workbook = xlrd.open_workbook("C:\\Users\li\Desktop\银联测试案例.xls")
print(Workbook)

Python中的xlrd模块使用整理

2.2获取xlrd.book.Book 对象中的所有sheet名称

Names = Workbook.sheet_names()

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
names = workbook.sheet_names()
print(names)

Python中的xlrd模块使用整理

2.3获取xlrd.book.Book对象中的所有sheet对象

Sheets = workbook.sheets()

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
names = workbook.sheets()
print(names)

获取单个的sheet页对象

三种方式 :

第一种 worksheet1 = workbook.sheet_by_index()
第二种 worksheet2 = workbook.sheet_by_name()
第三种 worksheet3 = workbook.sheets()[0]

workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

print(worksheet1,worksheet2,worksheet3)

Python中的xlrd模块使用整理

2.4判断xlrd.book.Book对象中某个sheet对象是否导入

通过文件名

workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
sheets = workbook.sheets()
print(workbook.sheet_loaded("公司分部"))

通过索引

workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
sheets = workbook.sheets()
print(workbook.sheet_loaded(0))

3.sheet对象的基本操作

3.1行操作

①获取所有行数

Rows = sheet.nrows 特别注意,这是属性而不是方法,不加括号。

workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

print(worksheet1.nrows)

Python中的xlrd模块使用整理

②获取某行的数据,值为列表形式

Value = sheet.row_values()

workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

value = worksheet1.row_values(1)
print(value)

Python中的xlrd模块使用整理

③获取某行的类型及数据

Sheet.row()

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

value = worksheet1.row(1)
print(value)

Python中的xlrd模块使用整理

④获取某行的类型的列表

Sheet.row_types()

单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

value = worksheet1.row_types(1)
print(value)

Python中的xlrd模块使用整理

⑤以切片形式获取某行的类型及数据

Sheet.row_slice() 记录分隔符为\n

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

value = worksheet1.row_slice(1)
print(value)

Python中的xlrd模块使用整理

⑥获取某行的长度

Sheet.len()

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

value = worksheet1.row_len(1)
print(value)

Python中的xlrd模块使用整理

⑦获取sheet的所有生成器

Sheet.get_rows()

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

row = worksheet1.get_rows()
for one in row:
    print(one)

Python中的xlrd模块使用整理

3.2列操作

①获取有效列数

Sheet.cols 注意:此处为属性不加括号

②获取某列数据

Sheet.values()

③获取某列类型

Sheet.types()

单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

④以slice切片方式获取某列数据

Sheet.value_slice()
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
sheets = workbook.sheets()

worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]

cols = worksheet1.col
value = worksheet1.col_values(0)
type = worksheet1.col_types(0)
valuesl = worksheet1.col_slice(0)

print(cols)
print("----------------------")
print(value)
print("----------------------")
print(type)
print("----------------------")
print(valuesl)

Python中的xlrd模块使用整理

3.3单元格操作

①获取单元格数据对象。 sheet.cell(rowx,colx)类型为xlrd.sheet.Cell

②获取单元格类型。Sheet.cell_type(rowx,colx)

单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

③获取单元格数据。

Sheet.cell_value(rowx,colx)

3.4对单元格中的日期/时间操作

单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

①xlrd.xldate_as_tuple()

“{}-{:0>2}-{:0>2}”.format(date[0],date[1],date[2])

②xlrd.xldate_as_datetime(value,mode).strftime(“%Y-%m-%d”)

workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
import datetime

sheet2_object = workbook.sheet_by_index(0)
value_type = sheet2_object.cell(0, 1).ctype
value_type = sheet2_object.cell_value(1, 4)

data = xlrd.xldate.xldate_as_datetime(value_type,0)
print(data.strftime("%Y-%m-%d"))

date = xlrd.xldate.xldate_as_tuple(value_type,0)
print("{}-{:0>2}-{:0>2}".format(date[0],date[1],date[2]))

Python中的xlrd模块使用整理

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

Python 相关文章推荐
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
Python实现多线程抓取妹子图
Aug 08 Python
python 添加用户设置密码并发邮件给root用户
Jul 25 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
Python爬豆瓣电影实例
Feb 23 Python
python 通过麦克风录音 生成wav文件的方法
Jan 09 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
May 21 Python
django-allauth入门学习和使用详解
Jul 03 Python
Python创建数字列表的示例
Nov 28 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
Django前后端分离csrf token获取方式
Dec 25 Python
浅谈python中的多态
Jun 15 #Python
如何正确理解python装饰器
Jun 15 #Python
详解python网络进程
整理Python中常用的conda命令操作
Python实现单例模式的5种方法
Jun 15 #Python
用Python爬取某乎手机APP数据
七个非常实用的Python工具包总结
You might like
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
车祸赔偿收入证明
2014/01/09 职场文书
战友聚会邀请函
2014/01/18 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
晚会开场白和结束语
2015/05/29 职场文书