Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将excel工作表与openpyxl进行比较_Python_Excel_List_Sorting_Openpyxl - Fatal编程技术网

Python 将excel工作表与openpyxl进行比较

Python 将excel工作表与openpyxl进行比较,python,excel,list,sorting,openpyxl,Python,Excel,List,Sorting,Openpyxl,我有两个excel文件。python代码应该填充一个新文件,该文件应该包含第二个文件(不在第一个文件中)的所有内容。如果这有道理的话。 示例:我有一个充满数据的列表。每周我都会得到一个。我只想得到第二个列表中的新内容 # Syntax list_sheet1 = [("DATA","data"),...] list_sheet2 = [("DATA","data"),...] # I just want to co

我有两个excel文件。python代码应该填充一个新文件,该文件应该包含第二个文件(不在第一个文件中)的所有内容。如果这有道理的话。 示例:我有一个充满数据的列表。每周我都会得到一个。我只想得到第二个列表中的新内容

# Syntax
list_sheet1 = [("DATA","data"),...]
list_sheet2 = [("DATA","data"),...]

# I just want to compare the uppercase data but append the hole tuple to my final list.
  • 清单1有4722行(内部无双行)
  • 清单2有10438行(内部无双行)
  • 10442-4722=5720
我的结果有5184行。我做错了什么?
非常感谢您的帮助。

如果列表中已经有
var
,则不会添加它们。输出取决于您的数据。
from openpyxl import *

# DECLARING WORKBOOKS
Excel1 = "SHEET1.xlsx"
wb1 = load_workbook(Excel1)
sheet1 = wb1['Tabelle1']

Excel2 = "SHEET2.xlsx"
wb2 = load_workbook(Excel2)
sheet2 = wb2['Sheet']

Excel_final = "SHEET_NEW.xlsx"
wb_final = load_workbook(Excel_final)
sheet_final = wb_final['Sheet']

# READ THE SHEETS
rows = 4722
list_sheet1 = []
for r in range(1, rows+1):
    tuple_sheet1 = (sheet1.cell(row=r, column=1).value, sheet1.cell(row=r, column=2).value)
    list_sheet1.append(tuple_sheet1)


rows = 10438
list_sheet2 = []
for r in range(1, rows+1):
    tuple_sheet2 = (sheet2.cell(row=r, column=1).value, sheet2.cell(row=r, column=2).value, sheet2.cell(row=r, column=3).value, sheet2.cell(row=r, column=4).value, sheet2.cell(row=r, column=5).value, sheet2.cell(row=r, column=6).value, sheet2.cell(row=r, column=7).value, sheet2.cell(row=r, column=8).value, sheet2.cell(row=r, column=9).value)
    list_sheet2.append(tuple_sheet2)


# FILTERS THE DATA
list_final = []
key_set = []
var1 = str()
var2 = str()

for i in list_sheet1:
    var1 = i[0]
    var2 = i[1]
    var = (str(var1), str(var2))
    key_set.append(var)

for i in list_sheet2:
    var1 = i[1]
    var2 = i[7]
    var = (str(var1), str(var2))
    if var not in key_set:
        list_final.append(i)
        key_set.append(var)


# WRITING TO WORKBOOK
for i in list_final:
    sheet_final.append(i)
wb_final.save(Excel_final)