循环并比较Python中的电子表格单元格

时间:2016-02-17 20:13:05

标签: python excel

请原谅原始代码,我确信有更好的方法可以实现这一目标,但我不熟悉编程。基本上我有一个带有2张纸的excel文件,纸张1填充在A列中,纸张2填充在A,B和C中。我想要遍历工作表1列中的所有单元格A在工作表中搜索匹配2列A并将信息从B和C复制到表1(如果找到)。下面的代码有点工作,它会复制一些数据并填充它但它并没有真正正确匹配,如果它们与前一个单元格的值相同,它似乎会跳过很多单元格。任何帮助将不胜感激。

import openpyxl

wb = openpyxl.load_workbook('spreadsheet.xlsx')

sheet1 = wb.get_sheet_by_name('Sheet1')
sheet2 = wb.get_sheet_by_name('Sheet2')

for row in sheet1['A1':'A200']:
    for cell in row:
        obj1 = cell.value
        for row2 in sheet2['A1':'A2000']:
            for cell2 in row2:
                obj2 = cell2.value
                if obj1 == obj2:
                    row = str(cell2.row)
                    site = 'B' + row
                    tic = 'C' + row
                    sheet1[site] = sheet2[site].value
                    sheet1[tic] = sheet2[tic].value

wb.save('spreadsheet2.xlsx')

1 个答案:

答案 0 :(得分:4)

您的问题有点不清楚,但如果我理解正确,这应该会有所帮助:

import openpyxl

wb = openpyxl.load_workbook('spreadsheet.xlsx')

sheet1 = wb.get_sheet_by_name('Sheet1')
sheet2 = wb.get_sheet_by_name('Sheet2')


for i in range(1, 201):
    if sheet1.cell(row = i, column = 1).value == sheet2.cell(row = i, column = 1).value:
        sheet1.cell(row = i, column = 2).value = sheet2.cell(row = i, column = 2).value
        sheet1.cell(row = i, column = 3).value = sheet2.cell(row = i, column = 3).value


wb.save('spreadsheet2.xlsx')

我可以使用.cell()方法清理代码。如果这不是你需要的,只需评论并告诉我你究竟想做什么。希望这有帮助!