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生成器定义与简单用法实例分析
Apr 30 Python
对python添加模块路径的三种方法总结
Oct 16 Python
在python中pandas的series合并方法
Nov 12 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
python二元表达式用法
Dec 04 Python
pandas的相关系数与协方差实例
Dec 27 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
Python预测分词的实现
Jun 18 Python
Python IO文件管理的具体使用
Mar 20 Python
浅谈python中的多态
Jun 15 #Python
如何正确理解python装饰器
Jun 15 #Python
详解python网络进程
整理Python中常用的conda命令操作
Python实现单例模式的5种方法
Jun 15 #Python
用Python爬取某乎手机APP数据
七个非常实用的Python工具包总结
You might like
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
让你的网站可编辑的实现js代码
2009/10/19 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Python字符串逐字符或逐词反转方法
2015/05/21 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
python爬取m3u8连接的视频
2018/02/28 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Pytorch Tensor的统计属性实例讲解
2019/12/30 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
出纳工作岗位责任制
2014/02/02 职场文书
外贸专业求职信
2014/03/09 职场文书
2015年教育实习工作总结
2015/04/24 职场文书