我正在使用openpyxl用python生成excel电子表格。
目前,我正在尝试为其中一张工作表中的整列编写一个函数。
我目前使用的代码运行良好,只是它输入的函数与编写的完全一样。我正在尝试使用VLookups,并且需要添加每个新函数来增加单元格引用。
这是当前代码
"""Add formula columns"""
#first new column
#load workbook
book = load_workbook('export1.xlsx')
#Assign sheet
sheet = book['RAW DATA']
for cell in sheet['V']: #loop through all cells in column
cell.value = '=VLOOKUP(N2,Matrix!L:M,2,FALSE)' #and assign function
#name the column
sheet['V1'] = 'New Column'
#save & close
book.save('testing.xlsx')
book.close()
Vlookup从单元参考"0"开始;N2";('=VLOOKUP(N2,矩阵!L:M,2,FALSE('(我希望每次添加函数时都能增加它。因此,下一个单元格将引用N3,然后是N4之后是N5等等。
任何见解或建议都会有很大帮助。
我试过这个,但由于某种原因,增量不起作用
"""Add formula columns"""
#first new column
#load workbook
book = load_workbook('export1.xlsx')
#Assign sheet
sheet = book['RAW DATA']
part1 = "=vlookup(N"
part2 = 2
part3 = ",Matrix!L:M,2,FALSE)"
vlookup = part1 + str(part2) + part3
stringvlookup = str(vlookup)
for cell in sheet['V']: #loop through all cells in column
cell.value = stringvlookup #and assign function
part2 += 1
#name the column
sheet['V1'] = 'New Column'
#save & close
book.save('testing.xlsx')
book.close()
使用解决
# using an if statement
for i, cellObj in enumerate(sheet['V'], 1):
if i > 1:
cellObj.value = "=VLOOKUP($N${0},Matrix!L:M,2,FALSE)".format(i)