如何用Openpyxl将E2单元格公式填充至E列其余单元格?
解决E2公式向下填充的问题
要实现将E2单元格的公式向下填充到E列剩余单元格,不需要手动拼接错误的公式字符串,直接复用E2的原始公式即可,openpyxl会自动处理相对引用的行号调整。修改后的代码如下:
import glob from openpyxl import load_workbook # 获取文件路径 pathway = glob.glob("Updated Workbook.xlsx") pathway = ''.join(pathway) # 加载工作簿和目标工作表 w_b = load_workbook(pathway) w_s = w_b['Sheet 1'] # 获取E2单元格的原始公式 e2_formula = w_s['E2'].value # 获取工作表有效行数,遍历从第3行开始的E列单元格 max_row = w_s.max_row for row in range(3, max_row + 1): # 赋值E2的公式,openpyxl会自动调整相对引用的行号 w_s[f'E{row}'].value = e2_formula # 保存修改后的工作簿 w_b.save('Copied Formulae.xlsx')
关键说明:
- 直接复用E2的原始公式,避免手动拼接公式导致的逻辑错误
- 利用
max_row获取工作表的有效数据行数,确保覆盖所有需要填充的单元格 - openpyxl会自动识别公式中的相对引用(比如E2公式是
=A2+C2,填充到E3时会自动变为=A3+C3)
内容的提问来源于stack exchange,提问作者dexmi18
相关产品推荐
相关产品推荐

