python 实现两个excel表格数据的对比
1.需求分析:
1.对比两个excel表格中相同列的数据,表格A,表格B
2.A--表格有gbid(20位数字),name-设备名字
3.B--表格有gbid(20位数字),name-设备名字也有类似的位置信息
要求:
1.找出表格a与表格b中相同的数据【判断依据是gbid,如果gbid相同就是认为是一个数据】
2.找出表格a中有的数据,但是表格b中没有的数据【判断依据是gbid,如果gbid相同就是认为是一个数据】
3.找出表格b中有的数据,但是表格a中没有的数据【判断依据是gbid,如果gbid相同就是认为是一个数据】
————————————————
2.设计思路:
实现的部分代码:
1.把一个表格A中的数据读入到一个全局的list列表中
2.然后读另外一个表格B一行行读,读取后就是与列表进行对比[gbid的对比]
3.如果B中的数据在A中【列表中】存在,就是在B的excel表格中第16列标记为数字1,同时背景色为红色,以及打印出“红色的id信息”
4.最终保存表格B的数据以及第16列状态信息
5.通过表格b中的16列状态就是可以知道,b表格中哪些数据在A中有,哪些没有
#程序思路 1.读入我方从导出的所有地市的数据表格sheet-->data # 2.读入对方数据治理的导出的数据的,sheet为“ck” # 3.导入所有数据的国标id到一个gloablist=[]这里,导出完毕后检索 # 4.循坏对方表中的国标ID那列,判断每个id是否在“gloablist=["这里,在这里就是在对方检索表的16列添加数字1,否则添加0 # ------ # 优化版本,优化存入数据到本地json格式,软件启动后直接读取到内存为列表形式,然后在对对比 # gbid--->list#优化输入表格输入名称错误的问题,简单优化下
3.使用数据帮助说明:
前提:两个表格,表格1是:工作簿是data 表格2工作簿是ck;1.导入网力excel表格数据,重点关注第六列数据是否是国标编号【31010100581394000030】20位编码;同时表格的工作簿一定要是“data"2.数据检测表格,重点关注第一列【待检测的编号】,以及第16列【数据写入状态1,0】同时表格的工作簿一定要是“ck"3.运行“数据检测”稍等一会就是在当前目录下生成“Dest_”开头的文件,关注第16列有1的就是说明有这个数据,0的就是没有这个数据
前提:两个表格,表格1是:工作簿是data 表格2工作簿是ck; 1.导入网力excel表格数据,重点关注第六列数据是否是国标编号【31010100581394000030】20位编码; 同时表格的工作簿一定要是“data" 2.数据检测表格,重点关注第一列【待检测的编号】,以及第16列【数据写入状态1,0】 同时表格的工作簿一定要是“ck" 3.运行“数据检测”稍等一会就是在当前目录下生成“Dest_”开头的文件,关注第16列有1的就是说明有这个数据,0的就是没有这个数据
4. 核心代码:
启动时候检测是否有db.json文件,如果有就是加载进入系统
db.json----->为导入表格的id信息的
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("数据加载完毕!")
5.入库的核心代码:
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 31010100581994000030 -->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 避免中文乱码
python 实现两个excel表格数据的对比相关推荐
- python使用openpyxl处理excel表格数据
python使用openpyxl处理excel表格数据 前言 一.安装openpyxl包 二.读取excel数据 1. 获取excel表格的页码 2. 获取excel表格某一行的数据 3. 获取exc ...
- python怎么合并多个excel表 视频_()如何用python合并两个excel表格
()如何用python合并两个excel表格 python合并excel表格视频教程2020-09-25 04:04:33人已围观 python实现excel合并 Created on Mon Mar ...
- 【Unity】安装配置Python使用protobuf转换Excel表格数据并在unit中使用
前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...
- python与excel的区别-python比较两个excel表格的差异
一个同事有两个excel表格要比较差异, 找了一下有相关软件,如: beyond compare, excel compare 但这两个似乎都是直接排序再比较的. 然后没办法,就用python折腾了一 ...
- Python写入和读取Excel表格数据
Python作为一个强大的数据处理工具,这里简单介绍下python读取写入excel表格数据. 一.python写入excel表格 导入xlwt模块 生成一个空的excel表格,命名为my_test. ...
- Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容
1 任务需求 首先,我们来明确一下本文所需实现的需求. 现有一个记录北京市部分PM2.5浓度监测站点信息的Excel表格数据,格式为.xls:文件内包含站点编号.X与Y坐标.站点名称等四列数据 ...
- exlc如何对比_给你两张Excel表格,如何对比快速找到其中不同数据!
当你有两个Excel表格需要对比数据时候,你该怎么做了?之前我们有讲过两列数据对比查找不同之处的方法.当然,那只是针对两列数据而言.这次小汪老师再来分享一下,对于两张表之间的数据如何快速有效的对比,找 ...
- Python按行打乱Excel表格数据
因做数学建模比赛,需要打乱训练数据,于是用python写了个简单的小程序,作用就是按行打乱Excel表格. 先说一下需要使用的第三方库openpyxl Openpyxl是一个用于读写Excel 201 ...
- 【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据
前言 大家好,我是阿光. 本专栏整理了<Pandas数据分析处理>,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据. 正在更新中~ ✨
- python处理wps表格数据匹配_两个excel表格数据匹配wps-WPS怎样用VLOOKUP引用另一个表格的数据...
wps精确匹配,把一个wps表格里面的数据匹配到另一... 材料/工具:wps2016 1.打开匹配个表格,表1和表2. 2.在需要放匹配值的格中输入=vl,就会自动提示vlookup函 3.双击选择 ...
最新文章
- c# unity PlayerPrefs 游戏存档,直白点就是讲游戏数据本地保存下来
- Linux内核的namespace机制分析
- @Bean+@Component+@Configuration+@Autowired的配合使用与区别(转载+整理+完整实验)
- 写代码水平的几个发展阶段
- Oracle对象被锁如何处理
- 《从零开始学Swift》学习笔记(Day 16)——字典集合
- mysql版本更新之后忘记登录密码_MySQL 密码遗忘和登陆报错问题
- python显示gif图片报错_用Python制作在地图上模拟瘟疫扩散的Gif图
- 谈区块链的时候别忘记了“新零售”
- pytorch入门_PyTorch入门
- ios签名软件_如何解决IOS企业签名超高掉签率?当然是选择小菠萝企业签名啦!...
- 机器学习笔记(1)决策树
- php元换成万元,人民币单位换算器(元换算成万元换算器)
- 30系列NVIDIA显卡安装tensorflow 极简
- MySQL复习记录(二):MySQL基础知识与基本操作
- 微信公众号 自定义分享功能
- AndroidInputSystem
- 2021东三省数学建模竞赛a题
- Redis高级应(2)-事务以及LUA脚本
- MySQL 的 SQL语句
热门文章
- ORB特征提取算法解析
- Mybatis学习笔记(九) —— Mybatis逆向工程
- iptables数据包、连接标记模块MARK/CONNMARK的使用(打标签)
- python学习:猜数字游戏
- cogs 315. [POJ3255] 地砖RoadBlocks
- datagrid与jqgrid区别
- 2017《面向对象程序设计》课程作业一
- Linux系统调用之open(), close() (转载)
- 通过过滤器获取表单元素
- [?]Solaris下两个Oracle同时启动时遇到的问题