如何用Python+openpyxl实现Excel公式自动向下批量填充
openpyxl 实现公式批量下拉填充(新手友好版)
你只要修改原有代码中给C2单元格赋值的部分,新增几行循环代码即可实现和Excel手动下拉一样的公式填充效果,完整修改后的代码如下:
from openpyxl import Workbook, load_workbook wb = load_workbook('TestExcel.xlsx') ws = wb.active ws.delete_cols(1,3) ws.delete_cols(3,8) ws.delete_cols(4,3) ws.insert_cols(3,1) ws['A1'].value = "Full Name" ws['C1'].value = "Email Address" # 以下是新增的公式批量填充代码 # 先获取当前工作表有数据的最后一行行号 max_row = ws.max_row # 从第2行开始遍历到最后一行,逐行写入公式 for row in range(2, max_row + 1): # 公式里的行号会随当前遍历的行数自动变化,和手动下拉效果完全一致 ws[f'C{row}'].value = f'=B{row}&"@testdomain.com"' wb.save('TestExcelUpdated.xlsx')
代码说明
- 不需要额外安装其他依赖,全部用openpyxl自带的属性和语法就能实现
ws.max_row是openpyxl内置的工作表属性,会自动识别当前表里有数据的最后一行的行号,不需要手动统计行数range(2, max_row + 1)是因为Python的range区间是左闭右开,所以要+1才能把最后一行包含进去- 公式里用了f-string语法自动替换行号,生成的每一行公式都会自动引用对应行的B列单元格,和Excel手动下拉公式的效果完全相同
内容的提问来源于stack exchange,提问作者FullMetalJumper
相关产品推荐
相关产品推荐

