首页 > 解决方案 > Python - Openpyxl - 将公式添加到列并将公式重复到最后一行数据

问题描述

尝试执行以下操作:在 G 列中添加以下公式: "=ACOS(COS(RADIANS(90-D2)) *COS(RADIANS(90-D3)) +SIN(RADIANS(90-D2)) *SIN(RADIANS(90-D3)) *COS(RADIANS(E2-E3))) *6371"

在 G 列中重复此公式,直到 D 和 E 列中的数据的最后一行。我希望公式中的单元格随着公式向下行而更新(即 D2 变为 D3 ...)

尝试了以下没有成功。这将在 G 列的所有行中复制公式,并在 D 和 E 列中复制数据,但我缺少更新每行公式中 D 和 E 单元格的部分。我的脚本不完整,不知道如何修复它。

for row_num in range(3, max_row+1):
    sheet['G{}'.format(row_num)] = '=ACOS(COS(RADIANS(90-D2)) *COS(RADIANS(90-D3)) +SIN(RADIANS(90-D2)) *SIN(RADIANS(90-D3)) *COS(RADIANS(E2-E3))) *6371'.format(row_num)```

标签: pythonexcelformulaopenpyxl

解决方案


我是 Python 新手,但我只是想通了。以下作品。

for row_num in range(3, max_row+1): sheet['G{}'.format(row_num)] = '=ACOS(COS(RADIANS(90-D{})) *COS(RADIANS(90-D{})) +SIN(RADIANS(90-D{})) *SIN(RADIANS(90-D{})) *COS(RADIANS(E{}-E{}))) *6371'.format(row_num-1, row_num, row_num-1, row_num, row_num-1, row_num)


推荐阅读