基于Python怎么实现对比Exce的工具
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇"基于Python怎么实现对比Exce的工具"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2025年11月09日基于Python怎么实现对比Exce的工具
这篇"基于Python怎么实现对比Exce的工具"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"基于Python怎么实现对比Exce的工具"文章吧。
1.参数
同一个excel文件两个sheet页其中一个ODS(老数据),一个DWH(新数据)
生成对比文件
设计两个主键 输入主键1 输入主键2
(默认新旧文件列名一致)
2.效果
生成的文件
数据量一样、取每个字段不一致的数据前10
数据量不一样、取两边不一样的数据前10、排除不一样的数据、每个字段不一致的数据前10
3.实现
循环对比组合列(主键+对比列)
pandas处理差异数据、openpyxl 处理生成的sheet的数据格式. (先生成数据,然后调整格式)
配置
import pandas as pdfrom openpyxl import load_workbook#选择文件路径path=r"C:\Users\小管同学\Desktop\Migration_Data_Compari\对比文件.xls" #input("选择文件路径:")TargetPath=r"C:\Users\小管同学\Desktop\Migration_Data_Comparison_Tool\目标文件\对比结果.xlsx"DATA_ODS=pd.read_excel(r"C:\Users\小管同学\Desktop\Migration_Data_Comparison_Tool\对比文件.xls",sheet_name="ODS")DATA_DWH=pd.read_excel(r"C:\Users\小管同学\Desktop\Migration_Data_Comparison_Tool\对比文件.xls",sheet_name="DWH")#选择主键Primarykey="员工编号"#input("选择主键1:")Primarykey# 员工编号一、数据量
输出表格1–数据量
def write_to_excel_DataVolume(Data,TargetPath): # cor_df 为要保存的 dataframe writer = pd.ExcelWriter(TargetPath, engine='xlsxwriter') # 这里用 Data.to_excel(writer,sheet_name='Sheet1', encoding='utf8', header=False, startcol=0, startrow=2) # 把dataframe的数据从第2行开始 workbook = writer.book format1 = workbook.add_format({ # 先把样式打包,然后之后赋值即可 'bold': True, # 字体加粗 'text_wrap': True, # 是否自动换行 'valign': 'bottom', #垂直对齐方式 'align': 'center', # 水平对齐方式 'fg_color': '#C5D9F1', # 单元格背景颜色 'border': 1,# 边框 }) writer_sheet = writer.sheets['Sheet1'] # 设置宽度 writer_sheet.set_column("A:I", 16) writer_sheet.set_column('C:C',30) writer_sheet.merge_range(0,0,0,2,'对比结果',format1) writer_sheet.merge_range(4,2,4,0,'数据量差异',format1) writer_sheet.write(1,0,'',format1) writer_sheet.write(1,1,'ODS',format1) writer_sheet.write(1,2,'DWH',format1) writer.save() writer.close()DataFrame_DataVolume=pd.DataFrame([[DATA_ODS.shape[0]],[DATA_DWH.shape[0]]]).TDataFrame_DataVolume.columns =["ODS","DWH"]DataFrame_DataVolume.index=["数据量"]DataFrame_DataVolume#writeFileDataVolume(DataFrame_DataVolume,TargetPath)write_to_excel_DataVolume(DataFrame_DataVolume,TargetPath)输出表格2–数据量差异合同
if DATA_ODS.shape[0]==DATA_DWH.shape[0]: passelse: DATA_ODS_Primarykey=pd.DataFrame(DATA_ODS[Primarykey]) DATA_DWH_Primarykey=pd.DataFrame(DATA_DWH[Primarykey]) df_union = pd.concat([DATA_ODS_Primarykey,DATA_DWH_Primarykey]) # 实现1 df_diff_ODS = df_union.append(DATA_ODS_Primarykey).drop_duplicates(subset=df_union.columns.to_list(), keep=False) df_diff_DWH = df_union.append(DATA_DWH_Primarykey).drop_duplicates(subset=df_union.columns.to_list(), keep=False) #DWH多的合同 df_diff_ODS #DWH少的合同 df_diff_DWH df_diff_DWH_Data=[] df_diff_ODS_Data=[] for i in df_diff_ODS.head(10).values.tolist(): for n in i: df_diff_ODS_Data.append(n) for i in df_diff_DWH.head(10).values.tolist(): df_diff_DWH_Data.append(n) while True: if len(df_diff_DWH_Data)>len(df_diff_ODS_Data): df_diff_ODS_Data.append("-") elif len(df_diff_DWH_Data)< len(df_diff_ODS_Data): df_diff_DWH_Data.append("-") elif len(df_diff_DWH_Data)== len(df_diff_ODS_Data): break DataFrame_DataVolume_Count_result=pd.DataFrame(df_diff_DWH_Data,df_diff_ODS_Data).reset_index() DataFrame_DataVolume_Count_result.columns=['DWH多的合同','DWH少的的合同'] DataFrame_DataVolume_Count_result=DataFrame_DataVolume_Count_result.reset_index() DataFrame_DataVolume_Count_result.columns=['序号','DWH多的合同','DWH少的的合同']DataFrame_DataVolume_Count_resultfrom openpyxl import load_workbook def write_to_excel_Count_result(Data,TargetPath): df_Old = pd.DataFrame(pd.read_excel(TargetPath)) #读取原数据文件和表 writer = pd.ExcelWriter(TargetPath,engine='openpyxl') book=load_workbook(TargetPath) writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) df_rows = df_Old.shape[0] #获取原数据的行数 Data.to_excel(writer,startrow=df_rows+1, index=False,startcol=0,header=True)#将数据写入excel中的aa表,从第一个空行开始写 writer.save()#保存write_to_excel_Count_result(DataFrame_DataVolume_Count_result,TargetPath)
以上就是关于"基于Python怎么实现对比Exce的工具"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
数据
文件
合同
内容
同学
生成
选择
工具
一致
差异
两个
员工
字段
文章
方式
格式
知识
篇文章
结果
表格
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
洗衣服务器特有的展示方法
郝斌老师数据库mysql
柒九网络技术咨询服务部
美国法医数据库
mysql 数据库字符
移动应用服务器存放点
多选框的值数据库怎么存
ssr服务器攻击
自计算机网络技术与自动化
360安全卫士数据库怎么更新
查看服务器显卡内存
优路教育无法连接到服务器
特种数据库技术
互联网科技的那些事
服务器生存日记怎么下载
软件开发著作权可以转让吗
华为服务器故障分析
蓬莱微信公众号软件开发哪家好
全球新闻数据库
数据库更新查询操作过程
网络安全课文
apache主从服务器
网络技术 服务器
计算机网络技术专业是神魔
广易网络技术有限公司
网络安全与可视化
asp连接数据库原理
软件开发需求文档引言
互联网科技的那些事
网络技术的瓶颈和解决方法