美文网首页
Python操作EXCEL电子表格

Python操作EXCEL电子表格

作者: M4K0 | 来源:发表于2019-02-21 11:20 被阅读0次

    Python操作EXCEL电子表格用到的是openpyxl库,从《Python编程快速上手-让繁琐工作自动化》这本书入手,然后发现部分内容已过时,后参考官方文档逐步完成。
    update:2019-02-21 16:18:56

    环境搭建

    pip install openpyxl

    基本操作

    http://openpyxl.readthedocs.org/

    任务描述

    同一个xlsx表格中的两个sheet:sheet2是待填充的表格、hangye是前文中的爬虫获取到的部分数据,需要把hangye数据粘贴到sheet2指定位置。注意:这些位置虽然在同一列,但行号是不连续的。

    代码详情

    #-*-coding:utf-8-*-
    import openpyxl
    
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')
    

    以上代码,后面三行是为了避免ascii字符读写错误。
    接下来正式开始操作电子表格

    wb = openpyxl.load_workbook('target.xlsx')
    print wb.get_sheet_names()
    sheet2 = wb.get_sheet_by_name('Sheet2')
    sheethy = wb.get_sheet_by_name('hangye')
    
    coshy = len(tuple(sheethy.columns))
    roshy = len(tuple(sheethy.rows))
    

    以上代码中,打开了电子表格,并实例化了两个sheet对象。表格的行数可以用len(tuple(sheethy.columns))获取。

    接下来,遍历sheet hangye中的每一行,在sheet2中寻找与其匹配的主键,如果匹配到则赋值,然后寻找下一个匹配。

    for hyr in range(1,roshy+1):
        tmpcname =  sheethy.cell(row=hyr,column=2).value
        tmpchy =  sheethy.cell(row=hyr,column=3).value
        for gsr in range(6282,6854):
            tmpcname2 = sheet2.cell(row=gsr,column=2).value
            if tmpcname == tmpcname2:
                sheet2.cell(gsr,column=6).value=tmpchy
                print "Loaded \t",
                print sheet2.cell(gsr,column=6).value
               
                break
    wb.save('result.xlsx') 
    print "done!"
    

    最后wb.save('result.xlsx')另存文件,大概是文件较大的缘故,执行到这一步程序会卡一下。

    运行结果

    image.png

    相关文章

      网友评论

          本文标题:Python操作EXCEL电子表格

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