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 相关文章推荐
详细解读Python的web.py框架下的application.py模块
May 02 Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
使用Python爬取最好大学网大学排名
Feb 24 Python
使用Selenium破解新浪微博的四宫格验证码
Oct 19 Python
python实现桌面壁纸切换功能
Jan 21 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
pandas DataFrame索引行列的实现
Jun 04 Python
Python装饰器的应用场景代码总结
Apr 10 Python
django数据模型中null和blank的区别说明
Sep 02 Python
python 如何调用远程接口
Sep 11 Python
浅谈python中的多态
Jun 15 #Python
如何正确理解python装饰器
Jun 15 #Python
详解python网络进程
整理Python中常用的conda命令操作
Python实现单例模式的5种方法
Jun 15 #Python
用Python爬取某乎手机APP数据
七个非常实用的Python工具包总结
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php实现的二分查找算法示例
2017/06/20 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Python新手如何理解循环加载模块
2020/05/29 Python
Python异常处理机制结构实例解析
2020/07/23 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
会计出纳岗位职责
2013/12/25 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
保洁员岗位职责
2015/02/04 职场文书
清洁工个人总结
2015/03/04 职场文书
如何写好闭幕词
2019/04/02 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python