请原谅原始代码,我确信有更好的方法可以实现这一目标,但我不熟悉编程。基本上我有一个带有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')
答案 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()
方法清理代码。如果这不是你需要的,只需评论并告诉我你究竟想做什么。希望这有帮助!