上周,领导给我分配了一个新任务,要求我开发一个 Excel 对比桌面工具。第一次听到这个功能,我非常兴奋,立刻开始了工作。
鉴于我之前开发过电脑桌面工具,因此我决定使用 Python 与 Tkinter 库来开发这个工具。但是,如何对比 Excel 文件的差异呢?我花了一个小时调研,发现 pandas 库提供了现成的接口,于是我决定使用它。
首先,我花了半天时间设计了界面和点击按钮。工具共有两个页面:第一个页面用于选择 Excel 文件,用户可以上传两个需要对比的 Excel 文件。选中后,将保存这两个 Excel 文件的绝对路径。为此,我创建了两个按钮,分别用于选择 Excel 路径。此外,我还添加了一个 label 标签来显示文件路径,以及一个提交按钮,点击后可跳转到差异对比页面。

在第二个页面,我使用 pandas 库的 read_excel() 函数读取两个 Excel 文件,并将其转换为两个 DataFrame。接着,我使用 pd.concat([df1, df2]) 函数将它们合并为一个 DataFrame。通过 drop_duplicates() 函数,我消除了重复值,最后使用 pandas 的 to_excel() 方法将结果写入一个新的 Excel 文件,从而实现了 Excel 差异对比功能。
对于按钮部分,我生成了一个按钮列用于执行差异对比,以及一个全量执行按钮,以便用户选择单个 sheet 对比或全量对比。页面底部还添加了一个文本窗口,用于实时打印执行关键日志,如每个 sheet 的执行进展。
最后,我用 pyinstaller 工具将 .py 文件打包成可执行的 .exe 程序,点击即可运行,不需要本地配置 Python 环境。
总之,我已经完成了大部分的工作,包括界面和关键代码。如有更好的建议,请在评论区提供。