- Вы хотите получить значения из отфильтрованного листа.
- Фильтр является базовым c фильтром.
- Например, когда значения помещаются в ячейки «A1: J25» и значения «A4: J4» и «A11: J11» отображаются фильтром, вы хотите получить значения ячеек «A4: J4» и «A11: J11».
- Вы хотите добиться этого с помощью таблиц.
- Вы уже смогли получить и поместить значения для Google Spreadsheet с помощью API Sheets с таблицей.
Если мое понимание верно как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
В этом ответе я использовал Query Language для этой ситуации. Сначала маркер доступа и идентификатор листа извлекаются с использованием таблиц, а затем значения из отфильтрованного листа извлекаются с помощью языка запросов. Для этого я использовал «запросы».
Пример сценария:
Прежде чем использовать этот сценарий, установите переменные.
import csv
from io import StringIO
import pygsheets
import requests
service_account_file = '###' # Please set the JSON filename including the credentials of service account.
spreadsheet_id = '###' # Please set the Spreadsheet ID.
sheet_name = 'Sheet1' # Please set the sheet name.
gc = pygsheets.authorize(service_file=service_account_file)
sh = gc.open_by_key(spreadsheet_id)
wks = sh.worksheet_by_title(sheet_name)
sheet_id = wks.jsonSheet['properties']['sheetId']
url = 'https://docs.google.com/spreadsheets/d/' + spreadsheet_id + '/gviz/tq?tqx=out:csv&gid=' + str(sheet_id)
res = requests.get(url, headers={'Authorization': 'Bearer ' + gc.oauth.token})
strValues = res.text
f = StringIO(strValues)
reader = csv.reader(f, delimiter=',')
ar = [row for row in reader]
ar.pop(0)
print(ar)
- В этом примере Сценарий, я использовал учетную запись службы. Если вы используете OAuth2, измените сценарий авторизации.
- Когда этот сценарий используется для вашей электронной таблицы, можно получить значения ячеек "A4: J4" и "A11: J11".
Справка: