Python-Openpyxl-将公式添加到列,并在数据的最后一行重复公式

时间:2020-09-19 06:07:14

标签: python excel formula openpyxl

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

在D列和E列中的数据之前,在G列中将此公式重复到最后一行。 我希望公式在单元格向下移动时更新公式中的单元格(即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)```

1 个答案:

答案 0 :(得分:0)

我是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)