Esempio n. 1
0
def set_link_to_cell(table_id: str, donor_list: str, donor_cell: str,
                     recipient_list: str, recipient_cell: str):
    values = [[f'=\'{donor_list}\'!{donor_cell}']]
    body = {'values': values}
    service.spreadsheets().values().update(
        spreadsheetId=table_id,
        range=f'{recipient_list}!{recipient_cell}',
        valueInputOption="USER_ENTERED",
        body=body).execute()
Esempio n. 2
0
def update_one_cell(table_id: str, list_name: str, cell_id: str,
                    new_value: [int, str]):
    """Изменить данные в одной ячейке"""
    values = [[f'{new_value}']]
    body = {'values': values}
    service.spreadsheets().values().update(spreadsheetId=table_id,
                                           range=f'{list_name}!{cell_id}',
                                           valueInputOption="USER_ENTERED",
                                           body=body).execute()
Esempio n. 3
0
def create_new_list_in_table(table_id: str, list_name: str):
    """Создать новый лист в таблице"""
    requests = [{'addSheet': {'properties': {'title': list_name}}}]
    body = {'requests': requests}
    try:
        service.spreadsheets().batchUpdate(spreadsheetId=table_id,
                                           body=body).execute()
    except:
        print('Такой лист уже существует')
Esempio n. 4
0
def get_lists_names_in_table(table_id: str) -> list:
    """Получить названия листов в таблице"""
    sheet_metadata = service.spreadsheets().get(
        spreadsheetId=table_id).execute()
    sheets = sheet_metadata.get('sheets', '')
    all_lists = [x['properties']['title'] for x in sheets]
    return all_lists
Esempio n. 5
0
def append_data_in_table(table_id: str,
                         list_name: str,
                         user_value: list,
                         position: str = 'ROWS'):
    """Запись в конец таблицы (user_value - это список списков)"""
    list_range = get_table_range(table_id, list_name)
    service.spreadsheets().values().batchUpdate(
        spreadsheetId=table_id,
        body={
            "valueInputOption":
            "USER_ENTERED",
            "data": [{
                "range": f"{list_name}!A{list_range + 1}",
                "majorDimension": position,
                "values": user_value
            }]
        }).execute()
Esempio n. 6
0
def update_data_in_table(table_id: str,
                         list_name: str,
                         range1: str,
                         user_value: list,
                         position: str = 'ROWS'):
    """Обновить данные в таблице (user_value - это список списков)"""
    service.spreadsheets().values().batchUpdate(
        spreadsheetId=table_id,
        body={
            "valueInputOption":
            "USER_ENTERED",
            "data": [{
                "range": f"{list_name}!{range1}",
                "majorDimension": position,
                "values": user_value
            }]
        }).execute()
Esempio n. 7
0
def get_table_range(table_id: str, list_name: str, position: str = 'ROWS'):
    """Получить количество строк в листе таблицы"""
    values = service.spreadsheets().values().get(
        spreadsheetId=table_id,
        range=f'{list_name}!A1:Z20000',
        majorDimension=position).execute()
    table_data = values['values']
    return len(table_data)
Esempio n. 8
0
def get_table_data(table_id: str,
                   range1: str,
                   range2: str,
                   list_name: str = 'Лист1',
                   position: str = 'ROWS'):
    """Чтение из таблицы"""
    values = service.spreadsheets().values().get(
        spreadsheetId=table_id,
        range=f'{list_name}!{range1}:{range2}',
        majorDimension=position).execute()
    table_data = values['values']
    return table_data