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分割和拼接字符串
Nov 01 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
Django 添加静态文件的两种实现方法(必看篇)
Jul 14 Python
python之Character string(实例讲解)
Sep 25 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
python 安装移动复制第三方库操作
Jul 13 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 Python
浅谈python中的多态
Jun 15 #Python
如何正确理解python装饰器
Jun 15 #Python
详解python网络进程
整理Python中常用的conda命令操作
Python实现单例模式的5种方法
Jun 15 #Python
用Python爬取某乎手机APP数据
七个非常实用的Python工具包总结
You might like
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
动态加载iframe
2006/06/16 Javascript
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
Python 变量的创建过程详解
2019/09/02 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
python实现图片转字符画
2021/02/19 Python
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
房屋买卖协议书范本
2014/04/10 职场文书
秋冬农业生产标语
2014/10/09 职场文书
2014年教育工作总结
2014/11/26 职场文书
python小型的音频操作库mp3Play
2022/04/24 Python