python 实现两个excel表格数据的对比--代码:

from openpyxl import load_workbook
import os
import time
from psutil import net_if_addrs
import pickle
import  sys
import json
from colorama import init
from colorama import Fore,Back,Style
from openpyxl.styles import PatternFill   # 导入背景色gloablist=[]   ## 把excel表格中第六列device id 31010100581394000030  -->20设备id,把上述设备id都是放入gloablist列表中
# 然后把列表中数据存储进入db.json文件中
def impotdatalib():gloablist = []pvg10 = input("pvg数据导出的gbid表格入库:")pvg10 = pvg10.strip()if (not pvg10.endswith("xlsx")):pvg10 = (pvg10 + ".xlsx")print("生成入库索引文件,请等待...")wb = load_workbook(pvg10)sheet = wb["data"]   #单元薄必须是“data"max_row = sheet.max_row+1print("导入数据rows:",max_row)max_column = sheet.max_column+1print("导入数据columns:",max_column)for i in range(1, max_row):for j in range(1, max_column):if (j == 6):  # device id 31010100581394000030  -->20设备idgbid=sheet.cell(row=i, column=6).valuegloablist.append(gbid)print("入库数据总量为:",len(gloablist))with open("db.json","w",encoding="utf8") as fjson:json.dump(gloablist,fjson,ensure_ascii=False)   #ensure_ascii=False  避免中文乱码def mtheread():sumcount=len(gloablist)   #总数errcount=0     #异常数据数量stdcount=0     #正常数量# 表格try EXCEPTIO变量的初始化变量wbdevice=""sheetdestdevide=""sz3=""print("=========欢迎使用EXCEL表格对比内容事项============")while True:try:sz3 = input("请输入数据治理数据表格,表名sheet[ck]:")print(Fore.GREEN+"数据正在预处理中,请稍等...")print(Fore.GREEN+"======================..")sz3=sz3.strip()if (not sz3.endswith("xlsx")):sz3 = (sz3 + ".xlsx")wbdevice = load_workbook(sz3)  #对方的表格数据读入系统sheetdestdevide = wbdevice["ck"]      #请输入数据治理数据表格de sheet--->工作簿 ckexcept Exception as e:print(e,"输入表格名称错误,请重新输入!")continue# 如果成功就是break跳出循环,继续执行下面的代码breakmax_row = sheetdestdevide.max_row+1# print(max_row)max_column = sheetdestdevide.max_column+1# print(max_column)for i in range(1,max_row):for j in range(1,max_column):if(j==1):   #对方的excel表格的数据在第一列checkvalue=sheetdestdevide.cell(row=i, column=j).value   #取出检测值 “31010100581394000030”# print(checkvalue,"qian")checkvalue=checkvalue.strip()    #处理检测值多于的符号 如空格等# print(checkvalue,"国标ID检测中...")# if  sheetdestdevide.cell(row=i,column=j).value==sheet.cell(row=i,column=6).value:if  checkvalue in gloablist:    #如果检测值在列表中,就是标准数据stdcount加1stdcount=stdcount+1# print("i行%d,j列%d"%(i,j))sheetdestdevide.cell(row=i, column=16).value=1     #如果检测值在列表中,这个excel表格的第16列数值为1# print("第三列的成绩:",sheetdestdevide.cell(row=i, column=3).value)print(Fore.GREEN+checkvalue+" "+"GBID CHECK....")else:sheetdestdevide.cell(row=i, column=16).value = 0  #如果检测值在列表中,这个excel表格的第16列数值为0# sheetdestdevide.cell(row=i, column=16).fill=PatternFill("solid",fgColor="99ccff")   #单元格加背景色sheetdestdevide.cell(row=i, column=16).fill=PatternFill("solid",fgColor="ff0000")   #单元格加背景色--红色errcount=errcount+1   #错误数据加1 计数print(Fore.RED+checkvalue+" "+"GBIDCHECK....")  #打印颜色是红色的# print(f"本次检测总数是{sumcount},标准国标id数据数量是{stdcount},需要关注的国标id数量是{errcount};")print(Fore.RED+"正在生成数据中,请稍等。。。")# 保存文件名称newSave="Dest_{}".format(sz3)# wbdevice.save("./newdest.xlsx")     #保存数据wbdevice.save(newSave)     #保存数据print("{}数据已经生成,请去目录中查询!".format(newSave))print(f"本次检测检测库总数是{sumcount},检测总数据量为{stdcount+errcount};标准国标id数据数量是{stdcount},需要关注的国标id数量是{errcount};")print(time.sleep(1))# 文档使用说明:
def helpdb():msg="""=============================两个EXCEL表格数据对比分析==============================前提:两个表格,表格1是:工作簿是data  表格2工作簿是ck;1.导入excel表格数据,重点关注第六列数据是否是国标编号【31010100581394000030】20位编码;同时表格的工作簿一定要是“data"2.数据检测表格,重点关注第一列【待检测的编号】,以及第16列【数据写入状态1,0】同时表格的工作簿一定要是“ck"3.运行“数据检测”稍等一会就是在当前目录下生成“Dest_”开头的文件,关注第16列有1的就是说明有这个数据,0的就是没有这个数据=============================两个EXCEL表格数据对比分析=============================="""print(msg)def dydata():print(gloablist[:10])# 函数字典,对上上面的函数,函数引用的调用,不是函数值的调用。
func_dic = {'1':impotdatalib,'2':mtheread,'3':helpdb,'4':dydata,}if __name__ == '__main__':if os.path.exists("db.json"):print("db.json数据加载中....")# 启动程序后就是把json文件内容整体读取到gloablist列表中,用于检索数据with open("db.json","r",encoding="utf8")as fr:gloablist=json.load(fr)print("数据加载完毕!")while True:print('''===两个excel表格数据对比,对比方式GBID==============功能列表===========1.写入数据并且配置,必须先入库[如果程序目录下有DB.JSON文件,已经入库,不用再入库!]2.数据检测3.使用说明4.打印列表前10条数据''')choice = input('请输入功能编号:').strip()if choice not in func_dic:print("输入正确的编号:")continuefunc_dic.get(choice)()

python 实现两个excel表格数据的对比--代码相关推荐

  1. python使用openpyxl处理excel表格数据

    python使用openpyxl处理excel表格数据 前言 一.安装openpyxl包 二.读取excel数据 1. 获取excel表格的页码 2. 获取excel表格某一行的数据 3. 获取exc ...

  2. python怎么合并多个excel表 视频_()如何用python合并两个excel表格

    ()如何用python合并两个excel表格 python合并excel表格视频教程2020-09-25 04:04:33人已围观 python实现excel合并 Created on Mon Mar ...

  3. python3读取excel数据-Python3读取和写入excel表格数据的示例代码

    python操作excel主要用到 xlrd 和 xlwt 这两个库,xlrd读取excel表格数据, 支持 xlsx和xls格式的excel表格 :xlwt写入excel表格数据: 一.python ...

  4. 【Unity】安装配置Python使用protobuf转换Excel表格数据并在unit中使用

    前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...

  5. python与excel的区别-python比较两个excel表格的差异

    一个同事有两个excel表格要比较差异, 找了一下有相关软件,如: beyond compare, excel compare 但这两个似乎都是直接排序再比较的. 然后没办法,就用python折腾了一 ...

  6. Python写入和读取Excel表格数据

    Python作为一个强大的数据处理工具,这里简单介绍下python读取写入excel表格数据. 一.python写入excel表格 导入xlwt模块 生成一个空的excel表格,命名为my_test. ...

  7. Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容

    1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有一个记录北京市部分PM2.5浓度监测站点信息的Excel表格数据,格式为.xls:文件内包含站点编号.X与Y坐标.站点名称等四列数据 ...

  8. exlc如何对比_给你两张Excel表格,如何对比快速找到其中不同数据!

    当你有两个Excel表格需要对比数据时候,你该怎么做了?之前我们有讲过两列数据对比查找不同之处的方法.当然,那只是针对两列数据而言.这次小汪老师再来分享一下,对于两张表之间的数据如何快速有效的对比,找 ...

  9. Python按行打乱Excel表格数据

    因做数学建模比赛,需要打乱训练数据,于是用python写了个简单的小程序,作用就是按行打乱Excel表格. 先说一下需要使用的第三方库openpyxl Openpyxl是一个用于读写Excel 201 ...

  10. 【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据

    前言 大家好,我是阿光. 本专栏整理了<Pandas数据分析处理>,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据. 正在更新中~ ✨

最新文章

  1. Python语言编程基础
  2. HEAP: Free Heap block XXXX modified at XXXX after it was freed
  3. C#调用百度地图 api
  4. node n 切换node版本失败_node版本如何升级
  5. 计算机丢失ac1st.dll怎么找回,CAD提示ac1st16.dll丢失修复步骤
  6. 通域消化内镜Android患者版,市中心医院消化内科Ⅰ病区开创超声内镜治疗新领域...
  7. JAVA六大线程池详解
  8. python创建字典和包的区别_python之路—模块和包
  9. 学业水平考试容易过吗_天水普通高中冬季学业水平考试圆满结束
  10. Spring Boot 2.0 多数据源编程 jdbcUrl is required with driverClassName
  11. 阶段3 2.Spring_01.Spring框架简介_06.spring的体系结构
  12. 抽帧定格动画如何制作?AE制作哈利波特定格动画教程
  13. 架构师必备!15个经典面试问题及回答思路
  14. matlab表示网络,Matlab绘制网络
  15. TTL RGB信号相关 介绍最为详细 HSYNC VSYNC DE CLK
  16. 机器学习——回归模型
  17. 未来量子计算机运算速度,中国科学家实现 “量子霸权”,计算速度比超级计算机快100万亿倍...
  18. 【19调剂】东北林业大学森林工程邢艳秋老师调剂信息
  19. 17.代理_CDN_网络安全
  20. stm32的flash和ram占用情况

热门文章

  1. c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 .
  2. VBA读取固定文件夹中txt内容
  3. spring与jpa整合 简化persistence.xml配置文件 使用属性文件 数据源dbcp访问数据库...
  4. Webservice 实践
  5. Js的前端效果编写逻辑(1)
  6. SQL数据库中主键和外键的应用实例
  7. 第十一章 策略梯度(Policy Gradient)-强化学习理论学习与代码实现(强化学习导论第二版)
  8. Neo4j数据导入与可视化
  9. JS学习总结(1)——基础知识
  10. Sentinel-1 影像与精轨数据下载(经常更新中)