Python学习营

python之excel写入数据的两种方法

2020-08-04  本文已影响0人  小迷糊仙

最近捣鼓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功能很强大,后面我会持续更新,欢迎关注~~

上一篇 下一篇

猜你喜欢

热点阅读