Как я могу обновить несколько объединенных ячеек с помощью Google Sheets API в Python? - PullRequest
1 голос
/ 30 апреля 2020

Мне нужно обновить (с пустой информацией) с помощью нескольких слитых ячеек с помощью Python с использованием Google Sheets API v4 (не распространено). У меня есть этот код:

blank = setValue("") <----- I set a variable with no data to delete all the info that the cell can contains
dataBlank = [
        ...
        {
            'range': 'AB83',
            'values': blank
        }
        {
            'range': 'BH75:BH82', # <------- I think here is the problem
            'values': blank
        } ...
    ]

body = {
        'valueInputOption': value_input_option,
        'data': dataBlank
    }
result = service.spreadsheets().values().batchUpdate(spreadsheetId=registro_id, body=body).execute()
print('{0} celdas borradas - Registro'.format(result.get('totalUpdatedCells')))

def setValue(value):
    rvalue = [value]
    avalue = [rvalue]
    return avalue

Он работает, но на листе он обновляет только первую ячейку диапазона, и весь диапазон не обновляется. Я пытаюсь с 'range' : 'BH75:BH82', 'range' : 'Sheet1!BH75:BH82', и я не могу обновить весь диапазон. Мне нужно использовать пакетное обновление, потому что мне нужно проверить производительность и не превышать лимит котировок из Google Cloud.

Я вот это:

I get this

Обновлена ​​только первая ячейка. Если я обновляю отдельные ячейки или объединенные ячейки без диапазона, это работает нормально, но если я использую диапазон для обновления, это не работает.

1 Ответ

2 голосов
/ 01 мая 2020

Я считаю, что ваша цель заключается в следующем.

  • Вы хотите поместить zero в ячейки BH75:BH82 на 1-й вкладке таблицы Google, используя метод Method: spreadsheets.values.batchUpdate в API листов.
  • Вы хотите добиться этого, используя googleapis с python.

Для этого, как насчет этого ответа?

Очки модификации:

  • В случае метода Method: spreadsheets.values.batchUpdate в API Sheets, когда вы хотите поместить значение в ячейки BH75:BH82, оно должно быть "values":[["sample"],["sample"],["sample"],["sample"],["sample"],["sample"],["sample"],["sample"]].
  • В вашем скрипте используется "values":[["sample"]]. При этом значение помещается только в 1-ю ячейку. Я думаю, что это является причиной вашей проблемы.

Модифицированный скрипт:

Когда ваш скрипт модифицирован, пожалуйста, измените его следующим образом.

С:
'range': 'BH75:BH82',
'values': zero
Кому:
'range': 'BH75:BH82',
'values': [[value],[value],[value],[value],[value],[value],[value],[value]]
  • К сожалению, из вашего скрипта я не могу понять о zero. Поэтому я использовал value в качестве переменной. Если вы хотите поставить пустое, объявите value как "".
  • Это простая модификация. Поэтому, конечно, вы также можете создать [[value],[value],[value],[value],[value],[value],[value],[value]] с помощью скрипта.

Примечание:

  • Если вы хотите поместить значение во множество ячеек, RepeatCellRequest метода batchUpdate в Sheets API может быть полезен. Ссылка

Ссылка:

...