问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python +excel进行接口自动化测试,目前只写成了利用多个sheet页实现的...

发布网友 发布时间:2022-04-23 13:18

我来回答

2个回答

懂视网 时间:2022-04-06 04:37

python做excel自动化的方法:首先安装python工具包;然后从指定文件路径读取excel表格,进行一定操作;接着保存到另一个excel文件;最终调用【excel_update】方法即可。

相关免费学习推荐:python视频教程

python做excel自动化的方法:

一、工具包

1、xlrd:从Excel电子表格中提取数据 doc地址:https://xlrd.readthedocs.io/en/latest/

2、xlwt:将数据写入Excel电子表格 doc地址:https://xlwt.readthedocs.org/en/latest/

3、xlutils:提供一组处理Excel文件的实用程序 doc地址:https://xlutils.readthedocs.io/en/latest/

二、安装

python -m pip install xlrd xlwt xlutils

三、基本用法

python操作excel的相关工具包可以具体到操作指定单元格的填充样式、数值类型、数值大小等等。然而python操作excel需要一定pandas数据处理功底,后续将补上章节:pandas数据处理技能

1、从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx

import xlwt
import xlrd
from xlutils.copy import copy
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir('./')
# 从指定文件路径读取excel表格
df = pd.read_excel('D:/mypaper/data/data.xlsx')
# 查看df内容
# 根据age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#获取当前系统时间对应的年份
df['birth'] = year-df['age']
df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看
#查看下此时df的内容,可以看到已经生成了birth这一列

乍看好像只用到了pandas,还没有用到上面介绍的三个工具包,下面介绍利用python操作excel底层

2、单元格操作

# 定义方法:读取指定目录下Excel文件某个sheet单元格的值
def excel_read(file_path,table,x,y):
 data = xlrd.open_workbook(file_path)
 table = data.sheet_by_name(table)
 return table.cell(y,x).value
# 定义方法:单元格值及样式
write_obj_list = []
def concat_obj(cols,rows,value):
 write_obj_list.append({'cols':cols,'rows':rows,'value':value,
'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})
# 定义方法:合并单元格
def merge_unit(srows,erows,scols,ecols,value):
 write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,
'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})
# 定义方法:更新excel
excel_update(file_path,write_obj_list,new_path):
 old_excel = xlrd.open_workbook(file_path, formatting_info=True)
 #管道作用
 new_excel = copy(old_excel)
 '''
 通过get_sheet()获取的sheet有write()方法
 '''
 sheet1 = new_excel.get_sheet(0)
 '''
 1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表
 '''
 for item in write_obj_list:
 if 'id' not in item.keys():
  if 'style' in item.keys():
  sheet1.write(item['rows'], item['cols'], item['value'],item['style'])
  else:
  sheet1.write(item['rows'], item['cols'], item['value'])
 else:
  if 'style' in item.keys():
  sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])
  else:
  sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])
 '''
 如果报错 dict_items has no attributes sort
 把syle源码中--alist.sort() 修改为----> sorted(alist) 
 一共修改2次
 '''
 new_excel.save(file_path)
#参数详解
# srows:合并的起始行数
# erows:合并的结束行数
# scols:合并的起始列数
# ecols:合并的结束列数 
# value:合并单元格后的填充值
# style:合并后填充风格:
# font: name 宋体
# height 280;
# alignment: horiz centre
# ... 与excel操作基本保持一致

注意:该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中

最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path

就可以在当前工作目录下生成想要的Excel结果文件。

注意:

1.write_obj_list支持用户自定义

2.write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成

python操作excel还有很多其他的基本方法,因篇幅的限制不再陈述和演示,想要深入研究的可以点击上面的doc地址。

学会python操作excel的单元格、并掌握上面的方法就可以基本实现excel的自动化报表操作了。

热心网友 时间:2022-04-06 01:45

安装xlrd

import xlrd

fname = "reflect.xls"
bk = xlrd.open_workbook(fname)
shxrange = range(bk.nsheets)
try:
    sh = bk.sheet_by_name("Sheet1")
except:
    print "no sheet in %s named Sheet1" % fname
#获取行数
nrows = sh.nrows
#获取列数
ncols = sh.ncols
print "nrows %d, ncols %d" % (nrows,ncols)
#获取第一行第一列数据 
cell_value = sh.cell_value(1,1)
#print cell_value

row_list = []
#获取各行数据
for i in range(1,nrows):
    row_data = sh.row_values(i)
    row_list.append(row_data)

以上例子获取Excel某个Sheet的单元格内容,


获得内容之后,进行处理就行了

我不知道你写的网站、get……想要怎么处理,你应该会的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
罗马全面战争怎么样提高元老院评价? 半夜家中镜匾忽然碎了 镜子忽然碎掉怎么解 化能异养型微生物分类 如何判断自养微生物与异养微生物 如何得知某微生物是否为哪种氨基酸的异养型微生物。 滨州市北海振宇电子科技有限责任公司怎么样? 北京振宇科技有限公司怎么样? 上海振宇化工科技有限公司经营范围 商业医保是否值得购买? python 的接口自动化测试使用的核心库是哪一个? python+selenium怎么读取csv中的数据进行列表循环登录自动化参数... python3 selenium eclipse 自动化测试怎么参数化读excel 【python接口自动化】在业务流程特别长的情况下,如何设计接口自动... 什么是Python接口自动化测试,具体能做什么,说明白点 朴灿烈接吻伸舌头了吗 我的手机锁屏密码和密保密码都忘了怎么办? 求助:Python接口自动化-如何遍历读取excel表格 灿烈郑秀晶出演《我们结婚了》 朴灿烈亲吻郑秀晶,这是真的吗? exo单身的有几个人? 使用python做接口自动化测试容易吗 我的荣耀手机锁屏密码忘了怎么办? 幻想下和朴灿烈谈恋爱的感受是什么? python,requests库做接口自动化时,传参格式是json,怎么传图片???_百... 你好,我的是荣耀v30Pro手机,现在忘记锁屏密码了怎么办? 朴灿烈袁姗姗对唱 曝朴灿烈袁姗姗吻戏为借位? py接口自动化与postman接口自动化的区别 一个橙光游戏,一开始就和朴灿烈边伯贤结婚了,而且边伯贤朴灿烈都是黑道里的人 如何创建 python+requests接口自动化测试框架 用EXO成员的中文名字组词,如:金珉硕果累累 求乙醇和虫师的零成本实现python接口自动化视频教程,腾讯课堂的看不了... 在做测试自动化时,为什么python列表是用的最多的一种数据类型? 我女儿上小学一年级了,在学校里面不听老师话,怎么办呀? 上幼儿园的小朋友非常不听话,老师该怎么引导? 小孩子上课不听老师讲,还一直爱玩小动作怎么办? 张家港私立幼儿园一学期费用多少 张家港德积彩虹幼儿园和小星星幼儿园一学期多少钱?上学有什么要求吗?求知道的好人告诉一下 孩子在学校不听指挥乱跑,不合群怎么办 公立幼儿园一个月花费七八百,私立幼儿园一个月花费两千,有什么区别? 小孩子在学校不好好读书不听话怎么做? 张家港市区私立幼儿园,求推荐? 小孩5岁了?在学校里面老师话都不听怎么办呀!回家里面我打也打了骂也骂了说也说了。沟通也沟通啊我真的 幼儿园报名一学期要交多少钱? 张家港凯斯幼儿园收费标准 小孩在学校不听多次老师有权力停学吗? 私立幼儿园学费是公立园的好几倍,到底有什么不同,该如何选择? 孩子在学校不听话,总是欺负别人的小孩子,老师的话他也不听,但是学习很好,怎么办 上幼儿园,一学期的费用有多少?有哪些费用? 学校孩子不听话怎么办? 私立幼儿园价格昂贵,到底贵在哪些方面?