#gspread
Вопрос:
Я пытаюсь найти способ массового обновления формата строк в электронной таблице. Я только начал использовать api листов и gspread, поэтому, возможно, мне чего-то не хватает.
Я записываю большой объем данных на лист (этот бит отлично работает), но я хотел бы помечать строки, которые требуют внимания, форматируя их цветом фона.
Я пишу данные с помощью чего-то вроде:
cellmap=sheet.range(f'A1:G{linenum}') for c in cellmap: c.value=(work out value here) sheet.update_cells(cellmap)
и эта партия идеально записывает данные на лист.
Затем я перебираю строки и получаю количество строк, которые нуждаются в форматировании, но мой вопрос в том, каков наилучший способ массового обновления формата этих строк?
Хотя зацикливание и выполнение по одной строке за раз sheet.style('A123:G124', {style spec})
работает, но, поскольку каждый из них выполняет запрос, это неэффективно и может привести к ограничениям api.
sheet.style использует batch_update, и я пытался взломать эти запросы в bulk_update, но я столкнулся с некоторыми ошибками при таком подходе, и это похоже на небольшой взлом.
Есть ли способ указать формат в ячейке (), чтобы я мог их паковать? (Хотя выполнение этого на ячейку будет сопряжено с большими накладными расходами).
Есть ли способ передать список диапазонов в формат? Формат уже использует пакет, поэтому было бы логично передать ему диапазон позиций, например [‘A1:G1′,’A10:G10’]? (К сожалению, это не сработало).
Есть ли какой-то способ приостановить отправку batch_updates, выполнить всю работу и поставить обновления в очередь, а затем отменить паузу, чтобы отправить их одним большим пакетом?
Или какой-то лучший способ сделать это? Или путь batch_update — лучший путь?