Да, в OpenPyXL 2.6+ произошли некоторые существенные изменения, в которых почему-то пропущена соответствующая документация.
Еще большее изменение, о котором следует помнить - поскольку оно также влияет на методы .column
/ .column_letter
-- это функциональность .merge_cells
.
Больше нельзя использовать .column_letter
или .col_idx
для ячейки в объединенном диапазоне - вы должны либо использовать .column
(для числа), либо метод get_column_letter(cell)
дляписьмо. (Обратите внимание, что вы должны импортировать метод get_column_letter
из утилит:
from openpyxl.utils import get_column_letter
Теперь, чтобы ответить на ваши конкретные вопросы:
1)Да, теперь вы должны использовать .column_letter
(больше не .column
), чтобы получить букву столбца - но, как уже упоминалось выше, безопаснее использовать get_column_letter(cell)
.И да, .column
теперь будет возвращать число, а не букву.
2) Да, .column
теперь возвращает число, точно так же, как .col_idx
. На самом деле, я рекомендую не использовать .col_idx
больше, так как он больше не работает с ячейками в диапазоне объединенных ячеек.
3) Заменить .column
на get_column_letter(cell)
вместо .column_letter
из-за изменений в обработке диапазонов объединенных ячеек.Поэтому простой поиск / замена не был бы целесообразным.Однако за пределами объединенных ячеек .column_letter
теперь возвращает то, что раньше делал .column
.