Задать вопрос
@filat18

Как создать/изменить примечание (Note) в Google.Sheets.API?

Долго искал способ, как прочитать Примечания из таблицы гугл и вот нашел на этом форуме.
Теперь есть необходимость создавать новые (или изменять имеющиеся) Примечания. Подскажите, пожалуйста, простой пример данной процедуры в Visual Basic или Python?
  • Вопрос задан
  • 43 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
from googleapiclient.discovery import build
from google.oauth2 import service_account

# Укажите путь к скачанному JSON-файлу сервисного аккаунта
SERVICE_ACCOUNT_FILE = 'ваш_сервис_аккаунт_файл.json'

# Настройка доступа
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE,
    scopes=['https://www.googleapis.com/auth/spreadsheets'])

service = build('sheets', 'v4', credentials=credentials)

def update_note(spreadsheet_id, sheet_name, cell, note_text):
    # Конвертация имени ячейки в индексы:
    col = ord(cell[0].upper()) - ord('A')
    row = int(cell[1:]) - 1

    # Получаем ИД листа:
    spreadsheet = service.spreadsheets().get(
        spreadsheetId=spreadsheet_id,
        fields="sheets(properties(sheetId,title))"
    ).execute()

    sheetId = [sheet['properties']['sheetId'] for sheet in spreadsheet['sheets'] if
               sheet['properties']['title'] == sheet_name][0]
    print(sheetId)

    service.spreadsheets().batchUpdate(
        spreadsheetId=spreadsheet_id,
        body={
            "requests": [{
                "updateCells": {
                    "range": {
                        "sheetId": sheetId,
                        "startRowIndex": row,
                        #"endRowIndex": row + 1,
                        "startColumnIndex": col,
                        #"endColumnIndex": col + 1
                    },
                    "rows": [{"values": [{"note": note_text}]}],
                    "fields": "note"
                }
            }]
        }
    ).execute()


# Использование:
spreadsheetId = 'ваш ид таблицы'
update_note(spreadsheetId, "Лист3", "B3", "Тестовое примечание.")


З.Ы. Для "сложных" ячеек ("AA15" итд.), если у вас такие есть, перепишите конвертацию имени ячейки в индексы, текущая работать не будет корректно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы