#python #excel #xlwings
#python #excel #xlwings
Вопрос:
У меня есть диапазон, и я хотел бы изменить числовой формат всего столбца.
Я пытаюсь выполнить следующее, но это ничего не меняет:
myRange.columns.number_format = 'dd.mm.yyyy hh:mm'
Есть идеи?
Ответ №1:
Свойство columns не было должным образом реализовано в xlwings с версии 0.22.0, поэтому самый простой способ ссылаться на столбец выглядит следующим образом:
xw.Book(...).sheets[0].range('A:A').number_format = 'dd.mm.yyyy hh:mm'
Комментарии:
1. Спасибо за отзыв. Возможно, это было непонятно, но моя проблема заключалась в том, чтобы получить объект столбца из диапазона, а затем применить форматирование чисел.
Ответ №2:
Там, где API xlwings останавливается, вы всегда можете переключиться на полноценный API Microsoft:
myRange.api.EntireColumn.NumberFormat = 'dd.mm.yyyy hh:mm'
Ответ №3:
Немного неприятное решение, но оно сделало свое дело:
myRange.sheet.book.sheets[myRange.sheet.name].range(chr(ord('@') myRange.column) ":" chr(ord('@') myRange.column)).number_format = '@'