for循环问题python匹配excel

时间:2016-09-12 12:43:27

标签: python excel for-loop

我正在尝试遍历整行单元格并将其与另一个Excel工作表上的单元格行进行比较。我已经弄明白它从表单中读取,但我的for循环和if语句肯定有问题。我正在做的是分配第一个单元格,然后将其与另一个单元格中的第一个单元格进行比较。如果它们相等,我希望它在第一张纸中该行的某一点写一个不同的纸张。如果它们不相同,我想看看前6位是否相同,如果它们是......我想在第一张纸上的那个单元格上写“CHECK”。我想继续沿着第二张纸中的单元格向下,直到全部检查完毕,继续前进到第一张纸中的下一个单元格并重新开始。

我的代码在这里出了什么问题?它将错误的输出输出到Excel工作表中。

谢谢。

for row in range(sheet.nrows):
     cell = str(sheet.cell_value(row, 0))

         for row in range(windc_sheet.nrows):

             windcell = str(windc_sheet.cell_value(row, 0));

             if cell == windcell:
                outputsheet.write(row, 1, ' ')
             else:
                sixdig = cell[0:6]
                sixdigwind = windcell[0:6]
                if sixdig == sixdigwind:
                    outputsheet.write(row, 1, 'Check')
         else:
             continue;


 else:
     continue


error output onto excel:        wanted output:

check                            check
check              
check 
check                            check 
check

比较两张纸:

 123456-01            123455-01
 124445               123336-55
 123454-99            123456-02
 123455-03            133377-66
 1277                 199227-22

1 个答案:

答案 0 :(得分:0)

第二次迭代是发生错误的那次。试试这个:

for row in range(sheet.nrows):
    cell = str(sheet.cell_value(row, 0))
    windcell = str(windc_sheet.cell_value(row, 0))
    if cell == windcell:
       outputsheet.write(row, 1, ' ')
    else:
       sixdig = cell[0:6]
       sixdigwind = windcell[0:6]
       if sixdig == sixdigwind:
           outputsheet.write(row, 1, 'Check')