最近搗鼓python接口自動(dòng)化測(cè)試過程,想要把測(cè)試結(jié)果寫入到excel中,于是開始網(wǎng)上各種搜集方法燎竖,后來發(fā)現(xiàn)這兩種最基本方法,并進(jìn)行了對(duì)比要销,供需要的小伙伴參考
(我這里是在源文件基礎(chǔ)上构回,復(fù)制一個(gè)文件,然后把測(cè)試結(jié)果寫入到復(fù)制文件中)疏咐。
方法一:利用xlutils.copy
步驟:
1纤掸、安裝xlrd、xlwt浑塞,再安裝xlutils(由于xlutils依賴xlrd借跪,xlwt)
pip install xlrd
pip install xlwt
pip install xlutils
2、導(dǎo)包 from xlutils.copy import copy
3酌壕、打開要復(fù)制的文件:old_wb=xlrd.open_workbook(filename)
4掏愁、復(fù)制一個(gè)新的workbook,copy(old_wb)
5卵牍、獲取要操作的sheet:用get_sheet(sheetname)方法
6果港、對(duì)sheet進(jìn)行寫入數(shù)據(jù)操作:sheet.write(row,col,value)
7、保存文件:new_wb.save(文件路徑+文件名)
import xlwt
import xlrd
from xlutils.copy import copy
import openpyxl
#方法一:
def write_value_xlu(row,col,value):
#先用xlrd打開源文件
file_path = r'C:\Users\admin\PycharmProjects\登陸接口自動(dòng)化'
file_name = '登陸接口測(cè)試用例data.xls'
#打開文件糊昙,formatting_info=True可保留文件原來的格式
old_wb = xlrd.open_workbook(file_path+"\\data\\"+file_name,formatting_info=True)
#利用xlutils模塊中的copy類辛掠,copy一個(gè)workbook
new_wb = copy(old_wb)
#獲取想要的sheet
new_sheet = new_wb.get_sheet('sheet1')
#指定單元格,寫入值
new_sheet.write(row,col,value)
#保存新文檔到指定目錄
new_wb.save(file_path+"\\report\\"+"test_result.xls")
write_value_xlu(1,11,'pass')
溫馨提醒:open_workbook(filename,formatting_info=True)中的formatting_info=True是為了把文件的格式也復(fù)制下來释牺,否則新文件格式會(huì)丟失萝衩。
方法二:openpyxl
步驟:
1、安裝 openpyxl
pip install openpyxl
2没咙、導(dǎo)包 import openpyxl
from openpyxl import load_workbook
3猩谊、打開要操作文件:openpyxl.load_workbook(filename)
4、獲取sheet:wb['sheetname']
5祭刚、給單元格寫入數(shù)據(jù):sheet.cell(row,col).value
6预柒、保存文件:wb.save(文件路徑+文件名)
def write_value_open(row,col,value):
# 先用xlrd打開源文件
file_path = r'C:\Users\admin\PycharmProjects\登陸接口自動(dòng)化'
file_name = '登陸接口測(cè)試用例data副本.xlsx'
wb = openpyxl.load_workbook(file_path+"\\data\\"+file_name)
work_sheet = wb['sheet1']
#work_sheet['K2']='pass' #此種寫法后面可能容易報(bào)錯(cuò)队塘,保險(xiǎn)起見我使用了下面的方法
work_sheet.cell(row=row,column=col).value = value
wb.save(file_path+"\\report\\"+'test_result_3.xlsx')
write_value_open(2,11,'pass')
通過上面兩種方法,是不是可以看出:方法二利用openpyxl模塊宜鸯,代碼相對(duì)更簡(jiǎn)單一些呢~~
openpyxl和xlutils功能很強(qiáng)大憔古,后面我會(huì)持續(xù)更新,歡迎關(guān)注~~