用python实现读取xlsx表格操作
作者:繁星流动?>_< 发布时间:2022-11-26 17:08:19
标签:Python,xlsx
前言
快要过年了,现在是工作的事情也不想干,学习也完全学不进去,关于xlsx的操作原本昨天已经写好了,不过悲催的是,忘记发布了直接关浏览器关闭后发现已经丢失了。
以下操作均对照改表格操作:
读操作
获取sheet的方法
通过索引获取sheet表格:
table = worbook.sheets()[0]
table = worbook.sheet_by_index(0)
通过sheet名称获取:
table = worbook.sheet_by_name(sheet_name='case')
获取xlsx中所有sheet:
table = worbook.sheet_names()
print(table)
打印:case
获取行和列
获取sheet中有效行数:
row = table.nrows
print(row)
打印:8
获取sheet中有效列数:
col = table.ncols
print(col)
打印:10
获取一行中有多少列数据:
col = table.row_len(0)
print(col)
获取指定行中的所有数据:
'''
rowx表示是获取第几行的数据
start_col表示从索引为多少开始,end_colx表示从索引为多少结束
end_colx为None表示结束没有限制
获取指定行中的数据并以列表的形式返回
'''
table_list = table.row_values(rowx=0, start_colx=0, end_colx=None)
print(table_list)
打印:['run', 'headers', 'pre_case_id', 'pre_fields', 'request_body', 'expect_result', 'assert_type', 'pass', 'update_time', 'response']
获取列中的数据:
'''
colx表示是获取第几列的数据
start_rowx表示从索引为多少开始,end_rowx表示索引为多少结束
end_rowx为None表示结束没有限制
获取指定列中的数据并以列表的形式返回
'''
table_list = table.col_values(colx=0, start_rowx=0, end_rowx=None)
print(table_list)
打印:['run', 'yes', 'no', 'yes', 'no', 'no', 'no', 'no']
获取单元格中值
获取指定单元格中的值:
table = worbook.sheet_by_name(sheet_name='case')
value = table.cell_value(rowx=0, colx=1)
print(value)
打印:headers
下面写个例子吧,就是将所有run为yes的行打印出来,其实在日常工作中就是将run为yes的用例执行一遍啦,虽然我们并不用excel来存储测试用例。这里直接将其定义成一个装饰器吧。
import xlrd
class Readxlrd():
def __init__(self,func):
self.func = func
def __call__(self, *args, **kwargs):
self.func(*args)
worbook = xlrd.open_workbook(filename=args[0])
table = worbook.sheet_by_name(sheet_name=args[1])
row = table.nrows
for i in range(row):
if i >= 1:
combined_dict = {}
table_list = table.row_values(rowx=i, start_colx=0, end_colx=None)
table_head = table.row_values(rowx=0, start_colx=0, end_colx=None)
for k, v in zip(table_head, table_list):
combined_dict[k] = v
if combined_dict['run'] == 'yes':
print(combined_dict)
@Readxlrd
def test(route,sheet):
print('输入的路径为{},输入的sheet是{}'.format(route,sheet))
打印:输入的路径为C:\Users\86182\Desktop\case.xlsx,输入的sheet是case
{'run': 'yes', 'headers': '{"Content-Type": "application/x-www-form-urlencoded"}', 'pre_case_id': -1.0, 'pre_fields': '[]', 'request_body': '{"phone": "18262966312", "pwd": "123456"}', 'expect_result': '0', 'assert_type': 'code', 'pass': 'True', 'update_time': 44447.6884722222, 'response': ''}
{'run': 'yes', 'headers': '{"token":"token"}', 'pre_case_id': 1.0, 'pre_fields': '[{"field":"token","scope":"header"}]', 'request_body': '{}', 'expect_result': '0', 'assert_type': 'code', 'pass': 'True', 'update_time': 44447.6892476852, 'response': ''}
来源:https://blog.csdn.net/HUJIANLAILE/article/details/122718747


猜你喜欢
- 最近在做一个手机站,要求点击分享可以直接打开微信分享出去。而不是jiathis,share分享这种的点击出来二维码。在网上看了很多,都说AP
- 这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习
- 字符x字符 x\\反斜线字符\0n带有八进制值 0 的字符 n (0 <=
- 一、前言return一直中,每中语言中其没没有很大差别,就不多说了。(shell语言return的是退出状态,可能差别是比较大的)最早看到y
- 无论是 DAO 还是 ADO 都有两种从 Recordset 对象中查询记录的方法: Find 方法和 Seek 方法。在这两种方法中可以让
- 本文记录了windows下python的安装,供大家参考,具体内容如下—–因为我是个真小白,网上的大多入门教程并不适合我这种超级超级小白,有
- 问题你想重新加载已经加载的模块,因为你对其源码进行了修改。解决方案使用imp.reload()来重新加载先前加载的模块。举个例子:>&
- 首先我们应当了解什么是math库:math库是python提供的内置数学类函数库,math库不支持复数类型,仅支持整数和浮点数运算。math
- 今天写了一个放迅雷焦点广告的效果,还请大家多多指正,先附上效果图一张:相关文章:迅雷首页新闻图片轮播效果js源码首先是JS代码部分,之前一定
- 通过OLE DB for DB2驱动string strSql = @"select phone_no from no_store
- 在上一篇文章里已经写过如何安装python和在eclipse中配置python插件,这篇就不多说了,开始入门。1.先新建一个python工程
- 第一种:利用functools 工具处理import functoolsresult = (lambda k: functools.redu
- 目录一、图示二、准备三、一个简单服务器应用四、向服务器发送图片五、最终关键yolov5调用代码:一、图示客户端请求输入一段视频或者一个视频流
- 本文实例讲述了JS将滑动门改为选项卡(需鼠标点击)的实现方法。分享给大家供大家参考。具体如下:大家都知道,滑动门和选项卡在布局和结构方面几乎
- 目录简介实现原理源码运行结果简介大家都知道在微信朋友圈或者微博以及QQ动态中,有很多“强迫症患者”发图片都爱发9张,而有些图是一张图片分成的
- 本文实例讲述了Python3基于sax解析xml操作。分享给大家供大家参考,具体如下:python使用SAX解析xmlSAX是一种基于事件驱
- 问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也
- 前言: 在项目中,我用到了vue +iview + vue-router 开发; 然后导航条就使用了iview的Menu组件,结果发觉导航条
- show parameter processes; 然后 更改系统连接数 alter system set processes=1000 s
- With语句是什么?有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个