2016-11-21 95 views
0

我想比較Python中使用Ppenpyxl的不同工作簿中的2個Excel列。到目前爲止,我得到了什麼是:比較不同excel工作簿中的2列:Python

#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') 

的事情是,if語句總是失敗,即使2列包含相同的值:

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

任何想法?

+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") 
相關問題