首页 > 解决方案 > 如何使用python在excel中编写R1C1引用(相对地址),例如(使用python)

问题描述

在 VBA 中,我可以添加一个地址相对于“当前单元格”的公式。例如,如果我写(在 VBA 代码中):

cells(2,2).formulaR1C1 = "=RC[4]"

那么单元格 B2 中的公式将是“=F2”,因为 B + 4 列(列)将是 F 列。

在 OpenPyXL 中,我不能使用 =RC[x] 样式。在工作表单元格中写入相对 REFERENCE(单元格地址)的替代方法是什么?

长选项是计算地址并添加它。例如

col = 2
row = 2
letter = column_letter(col + 4)
address = letter + str(row)
cell(x,y) = "=" + address
  1. 是否有另一个支持 R1C1 表示法的 python 编写器模块?我正在尝试用谷歌搜索它,但这不是一个常见的话题。

  2. 在 OpenPyXL 中,是否有更短的方法来添加相对引用?

(我在公式中有数百个这样的引用。)

标签: pythonexcelopenpyxl

解决方案


openpyxl 本身并不真正关心您在公式中输入的内容,因此您可能只能使用您拥有的内容。否则,首先检查您拥有的工作表的来源。单元格还有一个偏移方法,可以让 openpyxl 为您进行查找:

ref = cell.offset(row=2, column=-5).coordinate


推荐阅读