如何使用openpyxl在Python中将一个Excel文件的列值与另一个Excel文件的列值进行比较?

莱昂·肯尼迪

我能够读取两个Excel文件的列数据。下面是我的代码:

from openpyxl import load_workbook

book = load_workbook("Book1.xlsx")
book2 = load_workbook("Book2.xlsx")

sheets = book['Sheet1']
anotherSheet = book2["sheet1"]

for val1 in sheets:
    print(val1[0].value)

print("\n\n\n\n")

for val2 in anotherSheet:
    print(val2[0].value)

我需要将Book1的列的每个值与Book2的列的每个值进行比较。我对如何进行比较感到困惑。如果值匹配,那么我可以添加另一列并输入“是”,如果不匹配,则可以输入“否”。换句话说,我只需要检查Book2的Book1的Column中是否存在值。一些帮助将不胜感激。

莱昂·肯尼迪

最后,找出解决方案。

首先,我们需要创建3个列表来存储book1,book2中的tempList存储匹配的值。

from openpyxl import load_workbook

book = load_workbook("Book1.xlsx")
book2 = load_workbook("Book2.xlsx")

sheets = book['Sheet1']
anotherSheet = book2["sheet1"]
book1_list = []
book2_list = []
tempList = []

接下来,我们还想跳过列的标题并存储在新变量中。

skip_Head_of_anotherSheet = anotherSheet[2: anotherSheet.max_row]

然后遍历工作表并将所需列的值附加到它们各自的列表中(在我的情况下为'0'表示第一列)。

for val1 in sheets:
    book1_list.append(val1[0].value)

for val2 in skip_Head_of_anotherSheet:
    book2_list.append(val2[0].value)

检查列表中的重复项,并删除所有重复值。

book1_list = list(dict.fromkeys(book1_list))

存储列表的长度以用于调试

length_of_firstList = len(book1_list)
length_of_secondList = len(book2_list)

接下来,遍历两个列表并检查它们是否匹配,然后将匹配的值存储到中tempList

for i in book1_list:
    for j in book2_list:
        if i == j:
           tempList.append(j)
           #print(j)

现在,是时候编辑我们的Excel工作表了。我们将遍历存储在内部的匹配值,tempList并找到实际Excel工作表内的那些值。当我们检测到相同的值时,我们将YES通过识别特定行的索引来标记到excel工作表的第4列,即“ D”列。此外,如果“ D”列中的单元格为空,则将标记NO

for temp in tempList:
    for pointValue in skip_Head_of_anotherSheet:
        if temp == pointValue[0].value:
            anotherSheet.cell(column=4, row=pointValue[0].row, value="YES")
            #print(pointValue[0].row)

        if pointValue[3].value is None:
            anotherSheet.cell(column=4, row=pointValue[0].row, value="NO")

最后,我们将在新填充的列中添加标题,并保存我们的excel工作表并打印所需的信息以进行调试。

anotherSheet.cell(column=4, row=1, value="PII")
book2.save("Book2.xlsx")

print("SUCCESSFULLY UPDATED THE EXCEL SHEET")
print("Length of First List = ", length_of_firstList)
print("Length of Second List = ", length_of_secondList)

我希望这会对遇到同样问题的人有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从一个 Excel 列中删除与另一个 Excel 文件匹配的行?使用 VBA

比较2个文件的列,用另一个文件中1个列的值替换一个文件中不同列的值

Python Pandas - 如何将 df 中的列值与另一个 df 的列值进行比较

如何在 Python 中将一个文件中的值匹配到另一个文件

如何在Terraform中将一个文件值使用到另一个文件

如何使用awk测试列值是否在另一个文件中?

如何使用 Pandas 替换另一个文件中的匹配值的列?

无法将Excel列值复制到另一个Excel文件中的指定范围

我如何使用openpyxl库使用python将列从一个Excel工作表复制到另一个工作表?

使用python将列从一个excel文件复制到另一个excel文件表

如何对一列进行分组并获得另一个列的最大值并使用python返回整行

如何截断一个值以便与另一个值进行比较?

使用Powershell,如何将excel列中的值求和并按另一个变量的值排序?

AppleScript-如果文件在Excel工作表中列出,则添加另一个列值作为前缀

在.json文件中将一个键的值插入另一个键的值

Excel公式仅使用另一个工作表上的列中的第一个值

如何使用python将Excel文件的所有行和列合并到另一个Excel文件的单个单元格中?

将一个文件的前两列与另一个文件的前两列进行比较,并在输出中打印第二个文件中的值

如何用另一个文件的值替换一个文件的值?

如何编写一个以字典键作为列名,字典值作为列值的Excel文件?

如何通过另一个文件中的值更改csv列中的值

如何将文件特定列的值粘贴到另一个命令中?

使用python将一个文件与另一个文件进行比较以查找缺少的条目

如何在另一个 Python 文件的另一个函数中使用一个函数的计算值?

使用另一个文件的引用替换特定的列值

如何将选择列的行值与另一个数据框中的相同列进行比较?

将表的两列与特定值进行比较;如果一个匹配,则返回另一个

如何根据另一个参考列中的数据值填充或更新Excel工作表中的列值

如何使用在另一个 python 文件中使用的 unittest 模拟变量的值