Я определил класс Python для работы с Google Sheets API v4. И я создал этот метод для автоматического изменения размера столбца в соответствии с его содержимым, следуя инструкциям в здесь:
def autofit_col(self, sheet_id, start_col=0, end_col=1000):
"""
Resize column to fit to data.
:param sheet_id: sheet id
:param start_col: starting column, first column is 0
:param end_col: final column plus 1
"""
file_id = self.file_id
request = [{"autoResizeDimensions": {
"dimensions": {
"sheetId": sheet_id,
"dimension": "COLUMNS",
"startIndex": start_col,
"endIndex": end_col
}
}}]
self.batch_update(file_id, request)
Но он не работает, и я не могу найти ошибку... То же самое происходит и в случае с ROWS.
Он не вылетает, не показывает никаких предупреждений или ошибок, он просто ничего не делает.
Класс хорошо определен, потому что другие методы работают правильно.
Я надеюсь, что кто-то может найти проблему и помочь мне исправить ее.
Большое спасибо!
Например, из The class is well defined because other methods are working properly.
, как насчет повторного подтверждения идентификатора электронной таблицы и идентификатора листа? Потому что, когда ваше тело запроса используется как {request: request}
для метода batchUpdate, тело запроса работает. Я беспокоился, что идентификатор электронной таблицы и идентификатор листа могут отличаться от ваших целей.
self.execute_requests(file_id, request) просто совпадает с self.batch_update(file_id, request) (извините, я просто изменил имя)
идентификатор электронной таблицы и идентификатор листа верны, потому что другие запросы к ним обновляются правильно
Это на самом деле работает, я просто выполнял его в неправильном порядке...
Я также ожидал, что он изменит размер пустых столбцов до 100, но этого не происходит (и это меня смутило). Он ничего не делает для пустых столбцов (для этих случаев мне пришлось создать другой метод).
И это не работает точно так же, как «ручной» метод. Например, если я вручную «подгоняю под данные» определенный столбец, его размер изменяется до 55, но если я делаю это с помощью этого метода, он изменяется до 60.
Спасибо за ваши комментарии, они помогли мне осознать свою ошибку.
Не могли бы вы поделиться электронной таблицей и кодом для execute_requests(), чтобы я мог проверить структуру вашего запроса?