Как получить значения ячеек отфильтрованного листа с помощью pyghseets - PullRequest
1 голос
/ 20 февраля 2020

Как я могу получить только отфильтрованные значения из электронной таблицы? Если пользователь отфильтровал некоторые значения, они мне не нужны.

1 Ответ

1 голос
/ 21 февраля 2020
  • Вы хотите получить значения из отфильтрованного листа.
  • Фильтр является базовым 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".

Справка:

...