将 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
尝试使用以下代码将 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