2016-11-21 16 views
0

私はPythonでPpenpyxlを使用して別のブックの2つのExcelの列を比較しようとしています。これまでのところ、私が持っているものです:異なるExcelワークブックの2列を比較する:Python

... 
3145728 3145728, 
3145728 3145729, 
3145728 3145730, 
3145728 3145731, 
... 

任意のアイデア:

#Load the workbooks 
wkb1 = load_workbook(filename = os.path.join(srcdir, "wbk1.xlsx")) 
wkb2 = load_workbook(filename = os.path.join(srcdir, "wbk2.xlsx")) 
#Find the last row of the excel data 
ws1 = wkb1.active 
wkb1_LastRow = ws1.max_row 
ws2 = wkb2.active 
wkb2_LastRow = ws2.max_row 

for xrow in range (1,(wkb1_LastRow+1)): 
    for yrow in range (1,(wkb2_LastRow+1)): 
     print (ws1.cell(row=xrow, column=1).value, ws2.cell(row=yrow, column=1).value) 
     if ws1.cell(row=xrow, column=1).value == ws2.cell(row=yrow, column=1).value: 
      print('HIT') 

事は文は常に2列に同じ値が含まれているにもかかわらず、失敗した場合ということですか?

+0

は一つの値で空白があるようです。トリムを使ってみましたか? –

+0

'if'文をインデントする必要があります。今は 'yrow'より内側のループの一部ではありません。 – Olaf

+0

インデントミスはこの投稿でのみ作成されました。これは問題ではない – Nick

答えて

0

ネストループを使用するFWIWはこれを行う方法ではありません。 zipを使用する方がずっと簡単です。

次のように動作するはずです:

for src, target in zip(ws1['A'], ws2['A']): 
    if src.value == target.value: 
     print("Hit") 
関連する問題