Openpyxl比较两张纸上的值以查看值是否不存在

我正在制作一个 excel 比较程序,该程序需要一定数量的工作表,比较它们并检查其中一张工作表中的值是否在另一张工作表中不存在。但是,我收到一个重复的问题。为了澄清,这是我的代码:


import tkinter as tk

from tkinter import filedialog

import openpyxl, os, csv

from openpyxl.utils import get_column_letter, column_index_from_string


# Output File

outputFile = open('output.csv','w',newline='')

outputWriter = csv.writer(outputFile)


# Tk initialization for file dialog

root = tk.Tk()

root.withdraw()


# Number of sheets to be compared

number = input('Enter number of workbook sheets for comparison: ')

number = int(number)


# Functions for generating file paths

def generate_file_path():

    file_path = filedialog.askopenfilename(title="Open Workbook")

    return file_path


# Variables to store file paths, workbooks and worksheets

all_ws = []


# Core function for program's logistics

def core():

    # for loops for generating file paths, workbooks and worsheets

    for x in range(number):

        path = generate_file_path()

        wb = openpyxl.load_workbook(path)

        ws = wb['CBF']

        all_ws.append(ws)


    # for loop to use for finding diff

    for row in all_ws[1].iter_cols():

        for cellz in row:

            sheet_cols.append(cellz.value)


    # loop that checks if the value does not exist

    for ws_diff in range(number):

        for row,row2 in zip(all_ws[0].iter_cols(),all_ws[1].iter_cols()):

            for cell,cell2 in zip(row,row2):

                if cell.value not in sheet_cols:

                    outputWriter.writerow([str(cell2.value)])

但是,当我检查我的 csv 文件时,输出的“差异”似乎在两个文件上。有人对我有什么建议吗?一切都很好,谢谢


桃花长相依
浏览 154回答 2
2回答

慕码人8056858

也许你可以这样做:改变: for row in all_ws[1].iter_cols():至: for row in all_ws[0].iter_cols():之后:改变 if cell.value not in sheet_cols:至: if cell2.value in sheet_cols:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python