使用python脚本“自动化”年鉴通讯录更新



  • 0目标:将1号表格的数据更新在2号表格

    需要处理的excel文件:

    标准表格,更新数据从这获取,记为1.xslx

    0_1543978323541_1.png

    需要数据更新的表格,记为2.xslx

    0_1543978335461_2.png

    1安装库openpyxl

    1. 保证有Python环境
    2. 安装库
    pip install openpyxl
    

    3导入包

    import openpyxl
    from openpyxl import load_workbook
    

    什么是openpyxl?

    1. 一个处理电子表格的python库
    2. 官方文档参考:https://openpyxl.readthedocs.io
    3. 一篇浅显易懂的教程:https://automatetheboringstuff.com/chapter12/

    2获取表格数据

    打开1.xslx文件

    wb1=load_workbook('./1.xlsx')
    

    获取表格

    sheet1= wb1.get_sheet_by_name('Sheet1')
    

    提取行和列数据

    tuple1=tuple(sheet1['A1':'G493'])
    

    同样的,获取2.xslx文件数据

    wb2=load_workbook('./2.xlsx')
    
    sheet2= wb2.get_sheet_by_name('Sheet1')
    
    tuple2=tuple(sheet2['A1':'I619'])
    

    tuple转化为list

    list1=list(tuple1)
    
    list2=list(tuple2)
    

    3对比表格,更新数据

    for a in list1:#循环1文件
    
        for b in list2:#循环2文件
    
            if(a[0].value==b[0].value):#匹配表格档案号
    
                if(b[1].value!=a[1].value):#若表格2和表格1中姓名不一致
    
                    b[1].value=a[1].value#更新表格2中数据
    
                if(b[2].value!=a[2].value):#若表格2和表格1中ID不一致
    
                    b[2].value=a[2].value#更新表格2中数据
    
                if(b[3].value!=a[3].value):
    
                    b[3].value=a[3].value
    
                if(b[4].value!=a[4].value):
    
                    b[4].value=a[4].value
    
                if(b[5].value!=a[5].value):
    
                    b[5].value=a[5].value
    
                if(b[7].value!=a[6].value):#若表格2和表格1中单位不一致
    
                    b[7].value=a[6].value#更新表格2中数据
    

    4写入文件

    保存修改信息到文件

    wb2.save(r'./2.xlsx')
    

    5最后

    新人发稿,请各位大佬多多关照!



  • @zdw 建议去学一下pandas



  • 此回复已被删除!


  • @zkhust 好的,多谢学长指教


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

与 Dian 的连接断开,我们正在尝试重连,请耐心等待