python数据写入到excel不同sheet_python之excel写入数据的两种方法

最近捣鼓python接口自动化测试过程,想要把测试结果写入到excel中,于是开始网上各种搜集方法,后来发现这两种最基本方法,并进行了对比,供需要的小伙伴参考

(我这里是在源文件基础上,复制一个文件,然后把测试结果写入到复制文件中)。

方法一:利用xlutils.copy

步骤:

1、安装xlrd、xlwt,再安装xlutils(由于xlutils依赖xlrd,xlwt)

pip install xlrd

pip install xlwt

pip install xlutils

2、导包 from xlutils.copy import copy

3、打开要复制的文件:old_wb=xlrd.open_workbook(filename)

4、复制一个新的workbook,copy(old_wb)

5、获取要操作的sheet:用get_sheet(sheetname)方法

6、对sheet进行写入数据操作: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\登陆接口自动化'

file_name = '登陆接口测试用例data.xls'

#打开文件,formatting_info=True可保留文件原来的格式

old_wb = xlrd.open_workbook(file_path+"\\data\\"+file_name,formatting_info=True)

#利用xlutils模块中的copy类,copy一个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是为了把文件的格式也复制下来,否则新文件格式会丢失。

方法二:openpyxl

步骤:

1、安装 openpyxl

pip install openpyxl

2、导包 import openpyxl

from openpyxl import load_workbook

3、打开要操作文件:openpyxl.load_workbook(filename)

4、获取sheet:wb['sheetname']

5、给单元格写入数据:sheet.cell(row,col).value

6、保存文件:wb.save(文件路径+文件名)

def write_value_open(row,col,value):

# 先用xlrd打开源文件

file_path = r'C:\Users\admin\PycharmProjects\登陆接口自动化'

file_name = '登陆接口测试用例data副本.xlsx'

wb = openpyxl.load_workbook(file_path+"\\data\\"+file_name)

work_sheet = wb['sheet1']

#work_sheet['K2']='pass' #此种写法后面可能容易报错,保险起见我使用了下面的方法

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模块,代码相对更简单一些呢~~

openpyxl和xlutils功能很强大,后面我会持续更新,欢迎关注~~

你可能感兴趣的:(python数据写入到excel不同sheet_python之excel写入数据的两种方法)