Python 对比两个电子表格数据的交集

思路很简单,首先是将两个电子表格中需要对比的数据读取出来,默认读取出来的数据是元组,求交集最好的方式是把数据转换为集合,然后直接用交集运算符‘&’进行交集运算。再将运算好的数据转换为列表写入电子表格中,最后保存。

文件目录:

D:\python\doc下面有多个文件夹,每个文件夹下面有一个文件;

现在需要每个文件与D:\python\data.xlsx逐个交集。

每个交集生成一个电子表格保存到一个目录里面

代码如下:

from openpyxl import load_workbook, Workbook        #导入电子表格处理模块
import os        #导入系统模块

path = "D:\python\doc"        #读取文件列表

file_names = os.listdir(path)

for file_name in file_names:
    print(file_name)

    wb1 = load_workbook(f'D:\python\doc\{file_name}\{file_name}.xlsx')         #打开工作簿,并创建一个工作簿对象wb1
    wb2 = load_workbook('D:\python\data.xlsx')

    a_wb = wb1['sheet_name']        #打开工作表,并创建一个工作表对象
    b_wb = wb2['sheet_name']

    a_wb_max_row = len(a_wb['A'])   #取出第一列数据
    b_wb_max_row = len(b_wb['A'])

    for col in a_wb.iter_cols(min_row=2, max_row=a_wb_max_row, min_col=1, max_col=1, values_only=True):    #历遍工作表对象制定区域的数值
        col1 = set(col)     #将元祖转换为集合
    for col in b_wb.iter_cols(min_row=1, max_row=b_wb_max_row, min_col=1, max_col=1, values_only=True):
        col2 = set(col)
    col = col1&col2     #交集运算

    l_col3 = list(col)      #将集合转换为列表

    wb3 = Workbook()    #创建新工作簿对象
    c_wb = wb3.active   #创建活动工作表对象

    for i in range(len(l_col3)):     #将列表分行写入工作表对象
        d=[l_col3[i]]
        c_wb.append(d)

    wb3.save(f'D:\python\已生成文件A\{file_name}.xlsx')       #保存数据到新工作簿

python代码可以不断优化,有时候自己可以编写一个函数,或者官方提供了函数,通过重复调用和调用官方函数减少代码数量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟杜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值