将 VLOOKUP 写入列中的每一行 - openpyxl

Write VLOOKUP to each row in a column - openpyxl

尝试使用以下代码将 vlookup 公式应用于给定列 ('B') 中的每一行;

import openpyxl

path = 'test.xlsx'
wb = openpyxl.load_workbook(path)
ws2 = wb['Sheet2']

for eachrow in ws2['B']:
    print(eachrow)
    openpyxl.cell.value = '=VLOOKUP(B{0},Sheet1!A:A,1,0)'

print(ws2['B2'].value)

print(eachrow) 行按我的需要单独提供了所有行,但下一行不会使用提供的 VLOOKUP 字符串更新值。

print(ws2['B2'].value)returns值None

这一行 openpyxl.cell.value = '=VLOOKUP(B{0},Sheet1!A:A,1,0)' 并没有按照您的想法行事。您已经引用了该单元格; eachrow。相反,使用:

eachrow.value = '=VLOOKUP(B{0},Sheet1!A:A,1,0)'

但是,openpyxl 不会计算 excel 公式,因此您的打印调用只会打印 =VLOOKUP(B{0},Sheet1!A:A,1,0)'。如果您想评估公式,可以使用 xlwings