Как написать ссылку R1C1 (относительный адрес) в Excel с Python, как (С Python)

1

в VBA я могу добавить формулу с адресом относительно "текущей ячейки". Например, если я пишу (в коде VBA):

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

Тогда формула в ячейке B2 будет "= F2", потому что столбец B + 4 (столбцы) будет столбцом F.

В OpenPyXL я не могу использовать стиль = RC [x]. Каковы мои альтернативные способы написания относительной ссылки (адрес ячейки) в ячейке рабочего листа?

Длинным вариантом будет, чтобы вычислить адрес и добавить его. например

col = 2
row = 2
letter = column_letter(col + 4)
address = letter + str(row)
cell(x,y) = "=" + address
  1. есть ли еще один модуль записи питона, который поддерживает нотацию R1C1? Я пытаюсь это сделать, но это не общая тема.

  2. В OpenPyXL существует ли более короткий способ добавления относительных ссылок?

(У меня есть сотни таких ссылок внутри формул.)

  • 0
    Что если вы установите refMode в 'R1C1' при открытии книги?
  • 0
    @JohnColeman, при определенных обстоятельствах гораздо проще написать = RC [-5], чем вычислить строку & col, преобразовать в букву и написать «нормальный» адрес.
Теги:
excel
openpyxl

1 ответ

0

openpyxl сама по себе не заботится о том, что вы вкладываете в формулы, чтобы вы могли просто использовать то, что у вас есть. В противном случае начните с изучения источника рабочего листа, который у вас есть. Кроме того, у ячейки есть метод смещения, который получит openpyxl, чтобы выполнить поиск для вас:

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

  • 0
    Это все равно. Попробуйте ввести значение, например: "= RC [3]", сохраните и откройте в Excel. это наверное ошибка В любом случае «= R [y] C [x]» - это специальная конструкция, которую Excel на лету преобразует в адрес.
  • 0
    Я только что подал отчет об ошибке, но сомневаюсь, что это будет исправлено, поскольку R1C1 не поддерживается, и это производная
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню