openpyxl使用vlookup公式,执行代码后,存放结果的单元格是空白的,什么都没有显示。
在点击了单元格后,公式才会出现,鼠标移到公式后面再回车,单元格才出现公式运算结果。
难道不能执行完代码后,结果就运算出来写到对于的单元格中,如果还需要手动去回车一下就很不符合自动化了。
import openpyxl
wb = openpyxl.load_workbook('有基础资料和库存.xlsx')
ws = wb['库存']
for i in range(2,22):
ws[f'G{i}']=f'=A{i}&VLOOKUP(D{i},基础资料!A:B,2,FALSE)\n'
wb.save('有基础资料和库存-处理后.xlsx')
正常运行。
执行代码后,公式的运算结果就写到对应的单元格中。而不是需要我们手动去回车刷公式。
>>> import openpyxl
>>> wb = openpyxl.load_workbook("F:/MyPython/score.xlsx")
>>> sheet = wb.active
>>> for row in range(5,20):
sheet["E"+str(row)] = "=Vlookup(B"+str(row)+",H:I,2,0)"
>>> wb.save("F:/MyPython/score.xlsx")
在本机测试没有出现问题
你的 for 循环中 单元格赋值语句:是\n结尾吗?
然后你可以查看你的Excel表G列的单元格的类型是否正常
你本机代码中load_workbook方法没有设置data_only参数吧