使用openpyxl读取和写入excell文件
from openpyxl import load_workbookfrom openpyxl import Workbookfrom random import randintimport random'''注意:1.openpyxl库只能读取和编辑.xlsx文件2.在做读取和编辑操作时,别忘了做关闭,.close()操作3.如果要编辑的文件被手动打开了,代码则无法执行,注意这是经常犯的错和异常
·
from openpyxl import load_workbook
from openpyxl import Workbook
from random import randint
import random
'''
注意:
1.openpyxl库只能读取和编辑.xlsx文件
2.在做读取和编辑操作时,别忘了做关闭,.close()操作
3.如果要编辑的文件被手动打开了,代码则无法执行,注意这是经常犯的错和异常
4.使用.max_row获取的是excell表格的有效数据条数,不过操作时要注意删除有效数据下方的空数据(不要随便在表格中敲空格,会影响判断最大行数和最大列数)
5.注意openpyxl在读取表格时行和列的起始值都是1,不是0
'''
# 读取一个已存在的excell.xlsx文件
def readExl(filePath):
'''
读取一个excell表格,并使用字典输出数据
:param filePath: 文件路径,可以用绝对路径和相对路径,一般建议使用相对路径
:return: 读取的结果,使用字典存储,返回字典
'''
wb = load_workbook(filePath)
# 打开excell文件
sheet_name = wb.sheetnames
# 获取该文件中所有表单的名字,以便后续使用名字打开并读取表单,记住此处sheetnames后面不能带括号,否则会报错
ws = wb["Sheet1"]
# 使用sheet名字打开一个sheet表,并获取表格对象
maxRow = ws.max_row
# 获取最大行(包含表格中的空格,所以要去掉空格)
maxColumn = ws.max_column
# 获取最大列(包含表格中的空格,所以要去掉空格)
caseDic = {}
# 定义一个变量,接收一个字典,用于存储从excell表格中读取的数据
for i in range(2,maxRow+1):
caseDic[ws.cell(row=i, column=2).value] = [] # 此处我的字典中是存储接口测试用例,故将用例的功能名作为字典的键,键对应的值用列表储存
for j in range(3,maxColumn+1):
caseDic[ws.cell(row=i, column=2).value].append(ws.cell(row=i,column=j).value)
# 从excell读取值存入字典中的列表中,其中row代表表格中的行,column代表表格中的列
wb.close() # 记住读取excell表格时一定要关闭,不然容易出现报错
return caseDic
def writExcell1(fileName,sheetName="Sheet1"):
'''
创建一个新的excell表,然后填入值
:param fileName: 新的excell的存储路径及文件名字
:param sheetName: 表的名字
:return:
'''
wb = Workbook()
# 实例化一个表格文件对象
ws = wb.create_sheet(sheetName,0)
# 创建一个表格命名为“Sheet1”,0代表表格的下标,类似于列表
for i in range(1,11):
for j in range(1,11):
ws.cell(row=i,column=j).value = randint(1,100)
# 遍历行和列,填入值,row代表行,column代表列,此处用随机数填入值
wb.save(fileName) # 保存并给表格文件命名,命名包含文件的路径和以.xlsx为结尾文件名,路径建议相对路径
wb.close() # 关闭表格文件
def writExcell2(fileName,sheetName="Sheet1"):
wb = load_workbook(fileName)
# 打开一个excell文件,fileName为文件的路径
ws = wb[sheetName]
# 打开一个表格,sheetName为表格sheet的名字
maxRow = ws.max_row
# 获取最大行(包含表格中的空格,所以要去掉空格)
maxColumn = ws.max_column
# 获取最大列(包含表格中的空格,所以要去掉空格)
for i in range(1,maxRow+1):
for j in range(1,maxColumn+1):
ws.cell(row=i,column=j).value = random.choice(['a','b','c','d','e','f','j','k','l','m'])
# 读取表格,然后填入值,会将原本的值覆盖,random.choice()为随机数,从指定的范围内选择随机的值,范围可以是列表、元组、字符串
wb.save(fileName) # 保存并给表格文件命名,命名包含文件的路径和以.xlsx为结尾文件名,路径建议相对路径
wb.close() # 关闭表格文件
if __name__ == "__main__":
a = writExcell2(r"./测试生成表格.xlsx")
1.readExcell返回结果
对应的接口用例
{'登录': ['login003', '密码错误', '/api/accountWebImpl/system/login', 'post', '{"Content-Type":"application/json"}', '{"loginName":"18202793654","password":"5e4167dfedb02bb1851086563d4f7ba8","keyCode":"SYSMANAGER1643185342503","authCode":"5056","systemName":"熟人司机管理系统"}', 'code码为1', -100]}
2.writExcell1执行结果
2.writExcell2执行结果
更多推荐
已为社区贡献1条内容
所有评论(0)