首页 > 解决方案 > Python 和 Excel 公式

问题描述

在这里完全是初学者,但特别需要尝试通过自动化 Excel 让我的生活更轻松。我有一份每周报告,其中包含很多无用的列,使用 Python 我可以删除这些列并重命名它们,代码如下。

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"

ws['C2'].value = '=B2&"@testdomain.com"'

wb.save('TestExcelUpdated.xlsx')

这可以完成工作,但我希望公式从 B2 向下继续(因为顶行是标题)。

ws['C2'].value = '=B2&"@testdomain.com"'

显然,在 Excel 中,这只是将公式拖到列末尾的情况,但我无法在 Python 中使用它。我见过类似的问题,但答案在我头上。真的很感谢一个傻瓜指南。 Python代码后的Excel报告示例

标签: pythonexcelexcel-formulaformula

解决方案


一种方法是遍历工作表中的行。

for row in ws.iter_rows(min_row=2): #min_row ensures you skip your header row
    row[2].value  = '=B' + str(row[0].row) + '&"@testdomain.com"' 

row[2].value由于基于零的索引选择第三列。row[0].row获取当前行对应的数字


推荐阅读