Python中的xlrd模块使用整理
作者:糖果店的幽灵 发布时间:2023-03-30 17:35:04
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)
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)
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)
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)
②获取某行的数据,值为列表形式
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)
③获取某行的类型及数据
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)
④获取某行的类型的列表
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)
⑤以切片形式获取某行的类型及数据
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)
⑥获取某行的长度
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)
⑦获取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)
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)
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]))
来源:https://blog.csdn.net/weixin_42439274/article/details/117882897


猜你喜欢
- 本文实例讲述了php数组索引与键值操作技巧。分享给大家供大家参考。具体如下:<?php $array = array("a&
- 定期分析表ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]本
- 今天做visual transformer研究的时候,发现了einops这么个神兵利器,决定大肆安利一波。先看链接:https://gith
- 平时写的一些 Python 的代码,需要在其他模块里面复用。最粗狂的方法就是直接 copy 过去。但这种方式太麻烦,copy 一堆代码,导致
- 需求:获取oracle表增量信息,发送至udp514端口,支持ip配置步骤:(1)需要的jar oracle的 odbc5.ja
- 最终的效果废话不多少,直接上图这里可以清楚的看到,数据库里包含了日期,内容,和网站link下面我们来分析怎么实现使用的库import req
- 场景产品中有一张图片表,数据量将近100万条,有一条相关的查询语句,由于执行频次较高,想针对此语句进行优化表结构很简单,主要字段:user_
- 关于树莓派四驱小车的运动方向控制、摄像头方向控制已经在前面的两篇博文中介绍过。有需要的可以参考。本文也是基于上述两个python文件就绪的情
- 单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来#c
- 我就废话不多说了,大家还是直接看代码吧~import re s = 'alibaba阿里巴巴' # 待分割字符串en_let
- MySQL 与 Elasticsearch 数据不对称问题解决办法jdbc-input-plugin 只能实现数据库的追加,对于 elast
- 介绍Zmail 使得在python3中发送和接受邮件变得更简单。你不需要手动添加服务器地址、端口以及适合的协议,zmail会帮你完成。此外,
- 这篇文章主要介绍了python numpy数组中的复制知识解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 很多人喜欢玩抖音,我也喜欢看抖音小姐姐,可拿着手机一个个找视频太费劲。作为一个程序员,如何能在电脑前一边编程一边轻松地看抖音小姐姐呢?下面利
- 加密解密字符串的asp函数,如用于ASP链接地址栏参数的加密,看代码就明白。比如:show.asp?id=DB26538FA54C70E1E
- 安装 NumPy如果你已经在系统上安装了 Python 和 PIP,那么安装 NumPy 非常容易。请使用这条命令安装它:C:\Users\
- 日志文件对于一个服务器来说是非常重要的,它记录着服务器的运行信息,许多操作都会写日到日志文件,通过日志文件可以监视服务器的运行状态及查看服务
- 认证系统auth auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理。auth可以和adm
- 如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间
- python中字符串内置方法很多,可以通过dir()方式查看具体有哪些方法,下表是python字符串的全部的内置方法方法名描述capital