Python + лист Google | Как обновить определенные ячейки

Я изучаю, как использовать Google Sheet API и Python.

Во-первых, мне нужно обновить определенные ячейки в Google Sheet, а не диапазон ячеек.

Я мог бы использовать update_cell(), но каждое обновление требует запроса на запись, что не оптимально.

sheet_ELCSV.update_cell(str(x),1,OH_row_Side)
sheet_ELCSV.update_cell(str(x),str(PairA_Idx),str(OH_row_Executed))
sheet_ELCSV.update_cell(str(x+1),1,"Fee")
sheet_ELCSV.update_cell(str(x+1),11,str(Sum_Fee))

Я прочитал руководство для разработчиков по электронным таблицам().values().update() и batchUpdate. Если я не ошибаюсь, они принимают только 1 запрос на запись. Но я не понимаю, как обновлять определенные ячейки.

ssName = sheet_ELCSV.title + '!'
cell_range = 'A2,B2,D2,A3,K3'
 
values = (
    ('Sell','-2.17','27760.0476'),
    ('Fee', '-2.38285229')
)
value_range = {
    'majorDimension' : 'ROWS',
    'values': values
}
service.spreadsheets().values().update(
    spreadsheetId = ssID,
    valueInputOption = 'USER_ENTERED',
    range = ssName + cell_range,
    body = value_range
).execute()

Любое руководство приветствуется!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
2 157
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

spreadsheets.values.update — это метод, используемый для обновления одного диапазона.

Диапазон может быть отдельной ячейкой на листе или группой смежных ячеек на листе.

Вот пример допустимых диапазонов:

  • Sheet1!A1:B2 относится к первым двум ячейкам в двух верхних строках Sheet1.

  • Sheet1!A:A относится ко всем ячейкам в первом столбце Sheet1.

  • Лист1!1:2 относится ко всем ячейкам в первых двух строках Листа1.

  • Sheet1!A5:A относится ко всем ячейкам первого столбца Листа 1, начиная со строки 5.

  • A1:B2 относится к первым двум ячейкам в двух верхних строках первого видимого листа.

  • Sheet1 относится ко всем ячейкам в Sheet1.

  • Sheet1!A1 относится к ячейке A1 листа Sheet1.

Чтобы обновить сразу несколько диапазонов, вы можете использовать batchUpdate():

Попробуйте этот код ниже:

batch_update_values_request_body = {
    "valueInputOption": "RAW",
    "data": [
        {
            'range': 'Sheet1!A2',
            'values': [['Sell']]
        },
        {
            'range': 'Sheet1!B2',
            'values': [['-2.17']]
        },
        {
            'range': 'Sheet1!D2',
            'values': [['27760.0476']]
        },
        {
            'range': 'Sheet1!A3',
            'values': [['Fee']]
        },
        {
            'range': 'Sheet1!K3',
            'values': [['-2.38285229']]
        },
    ]
}
service.spreadsheets().values().batchUpdate(
   spreadsheetId=spreadsheet_id, 
   body=batch_update_values_request_body
).execute()

Выход:

Ссылка:

пакетное обновление ()

Формат А1

Я понимаю. Это займет только один запрос на запись?

user2741620 17.12.2020 03:08

@ user2741620 - Да

Nikko J. 17.12.2020 16:08

Другие вопросы по теме