美文网首页Python学习营
python之excel写入数据的两种方法

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

作者: 小迷糊仙 | 来源:发表于2020-08-04 16:38 被阅读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功能很强大,后面我会持续更新,欢迎关注~~

    相关文章

      网友评论

        本文标题:python之excel写入数据的两种方法

        本文链接:https://www.haomeiwen.com/subject/lrprrktx.html