我正在制作一个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)])
最佳答案
也许你可以这样做:
>更改:对于all_ws中的行[1] .iter_cols():
要:for all_ws [0] .iter_cols()中的行:
>之后:
如果cell.value不在sheet_cols中,则更改:
要:如果在sheet_cols中的cell2.value:
希望能帮助到你 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。