如何使用 pygsheets 过滤 sheet 单元格值
How to get filtered sheet cells values with pyghseets
如何只从电子表格中获取过滤后的值?如果用户过滤了一些值,我不需要它们。
- 您想从过滤后的 sheet 中检索值。
- 过滤器是基本过滤器。
- 例如,当值放入单元格 "A1:J25" 并且过滤器显示 "A4:J4" 和 "A11:J11" 的值时,您想要检索单元格的值"A4:J4" 和 "A11:J11".
- 您想使用 pygsheets 来实现。
- 您已经能够使用 Sheets API 和 pygsheet.
获取和放置 Google Spreadsheet 的值
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
在这个回答中,我针对这种情况使用了查询语言。首先,使用 pygsheets 检索访问令牌和 sheet ID,然后,查询语言检索过滤后的 sheet 中的值。为此,我使用了 "requests".
示例脚本:
在使用此脚本之前,请设置变量。
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,请修改授权脚本。
- 当此脚本用于您的示例 Spreadsheet 时,可以检索 "A4:J4" 和 "A11:J11" 的单元格值。
参考:
如何只从电子表格中获取过滤后的值?如果用户过滤了一些值,我不需要它们。
- 您想从过滤后的 sheet 中检索值。
- 过滤器是基本过滤器。
- 例如,当值放入单元格 "A1:J25" 并且过滤器显示 "A4:J4" 和 "A11:J11" 的值时,您想要检索单元格的值"A4:J4" 和 "A11:J11".
- 您想使用 pygsheets 来实现。
- 您已经能够使用 Sheets API 和 pygsheet. 获取和放置 Google Spreadsheet 的值
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
在这个回答中,我针对这种情况使用了查询语言。首先,使用 pygsheets 检索访问令牌和 sheet ID,然后,查询语言检索过滤后的 sheet 中的值。为此,我使用了 "requests".
示例脚本:
在使用此脚本之前,请设置变量。
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,请修改授权脚本。
- 当此脚本用于您的示例 Spreadsheet 时,可以检索 "A4:J4" 和 "A11:J11" 的单元格值。