用python实现读取xlsx表格操作

作者:繁星流动?>_< 时间:2022-11-26 17:08:19 

前言

快要过年了,现在是工作的事情也不想干,学习也完全学不进去,关于xlsx的操作原本昨天已经写好了,不过悲催的是,忘记发布了直接关浏览器关闭后发现已经丢失了。
以下操作均对照改表格操作:

用python实现读取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

标签:Python,xlsx
0
投稿

猜你喜欢

  • go使用consul实现服务发现及配置共享实现详解

    2024-04-23 09:48:01
  • Python face_recognition实现AI识别图片中的人物

    2023-08-14 21:34:35
  • python两个_多个字典合并相加的实例代码

    2023-05-05 07:50:33
  • vite+vue3中使用mock模拟数据问题

    2024-04-28 09:27:56
  • Golang导入包的几种方式(点,别名与下划线)

    2023-09-17 23:09:42
  • Python探索之实现一个简单的HTTP服务器

    2021-06-04 16:52:02
  • Python里disconnect UDP套接字的方法

    2023-03-26 02:48:00
  • python简单猜数游戏实例

    2023-10-05 21:31:55
  • python snownlp情感分析简易demo(分享)

    2021-07-18 04:32:35
  • php和asp利用Shell.Application来执行程序的代码

    2024-04-29 13:58:02
  • 学以致用 驳“ASP低能论”

    2007-09-30 13:01:00
  • Python匹配中文的正则表达式

    2022-03-21 18:05:50
  • 解决django同步数据库的时候app models表没有成功创建的问题

    2024-01-15 02:04:09
  • 为网页设计创建有效的配色方案

    2011-08-31 12:55:57
  • ASP编程入门进阶(十四):Browser & Linkin

    2008-06-12 07:08:00
  • 指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)

    2024-04-17 10:05:21
  • 用 prototype 定义自己的方法

    2010-03-17 20:44:00
  • Python实现发送邮件到自己邮箱

    2023-10-18 17:08:11
  • TensorFlow如何指定GPU训练模型

    2022-05-31 10:03:21
  • JS脚本实现网页自动秒杀点击

    2024-04-16 09:36:09
  • asp之家 网络编程 m.aspxhome.com