python – Openpyxl比较两个表中的值以查看值是否不存在

前端之家收集整理的这篇文章主要介绍了python – Openpyxl比较两个表中的值以查看值是否不存在前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

  1. import tkinter as tk
  2. from tkinter import filedialog
  3. import openpyxl,os,csv
  4. from openpyxl.utils import get_column_letter,column_index_from_string
  5. # Output File
  6. outputFile = open('output.csv','w',newline='')
  7. outputWriter = csv.writer(outputFile)
  8. # Tk initialization for file dialog
  9. root = tk.Tk()
  10. root.withdraw()
  11. # Number of sheets to be compared
  12. number = input('Enter number of workbook sheets for comparison: ')
  13. number = int(number)
  14. # Functions for generating file paths
  15. def generate_file_path():
  16. file_path = filedialog.askopenfilename(title="Open Workbook")
  17. return file_path
  18. # Variables to store file paths,workbooks and worksheets
  19. all_ws = []
  20. # Core function for program's logistics
  21. def core():
  22. # for loops for generating file paths,workbooks and worsheets
  23. for x in range(number):
  24. path = generate_file_path()
  25. wb = openpyxl.load_workbook(path)
  26. ws = wb['CBF']
  27. all_ws.append(ws)
  28. # for loop to use for finding diff
  29. for row in all_ws[1].iter_cols():
  30. for cellz in row:
  31. sheet_cols.append(cellz.value)
  32. # loop that checks if the value does not exist
  33. for ws_diff in range(number):
  34. for row,row2 in zip(all_ws[0].iter_cols(),all_ws[1].iter_cols()):
  35. for cell,cell2 in zip(row,row2):
  36. if cell.value not in sheet_cols:
  37. outputWriter.writerow([str(cell2.value)])

但是,当我检查我的csv文件时,输出的“差异”似乎出现在两个文件上.有没有人有任何帮助我的建议?什么都会很好,谢谢你

最佳答案
也许你可以这样做:

>更改:对于all_ws中的行[1] .iter_cols():

要:for all_ws [0] .iter_cols()中的行:
>之后:

如果cell.value不在sheet_cols中,则更改:

要:如果在sheet_cols中的cell2.value:

希望能帮助到你 :)

猜你在找的Python相关文章