как массово обновить формат многих строк/ячеек

#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 — лучший путь?