У меня есть заготовка класса Sheet, который наследуется от класса Worksheet библиотеки gspread (pip install gspread).
from gspread import Cell, Worksheet
class Sheet(Worksheet):
def get_values_by_title(self, col_title: str, col_filter: dict = None) -> list[Cell]:
"""
Получает значения из столбца по его названию с возможностью фильтрации по другим столбцам.
:param col_title: название столбца ячейки из которого нужно получить.
:param col_filter: фильтр, где ключ - название столбца, а значение - значение в ячейке этого столбца.
:return: список ячеек
Примечание 1: Если есть столбцы с одинаковыми названиями, то функция будет работать с первым столбцом.
Примечание 2: Если столбец с названием col_title не найден, то функция вернёт пустой список.
Примечание 3: Если название столбца из col_filter не найдено в таблице, то функция вернёт пустой список,
так как ни одно из значений не будет совпадать с фильтром.
"""
pass
Так же с помощью следующего кода я могу получить объект класса Worksheet:
import gspread
import config
gs = gspread.service_account(config.SECRET_FILE)
table = gs.open_by_url(config.URL)
worksheet = table.worksheet(config.SHEET_NAME)
Что мне нужно сделать с классом Sheet, чтобы я мог делать так:
sheet = Sheet(worksheet)
sheet.get_values_by_title()