Как изменить числовой формат столбца, представляющего собой диапазон, с помощью xlwings pyhton

#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 = '@'