当列数未知时,如何使用 google 工作表 API select 数据范围?
how to select data range with google sheets API when number of columns is unknown?
我正在转换一个最初在 App Script 中完成的脚本,以将格式应用于 google 张。
这个脚本需要应用到很多sheet上,列数事先不知道。之前,在应用程序脚本中,我使用了不带参数的基本 getDataRange()
,它会 select 正确的列数和行数。我怎样才能通过 API 做同样的事情?有没有办法将结束列索引设置为数据范围的结束?
例如,我正在使用
{
"setBasicFilter": {
"filter": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 0
}
}
}
}
将首行设置为过滤器。但它也对所有空单元格应用过滤器,这些空单元格在 table 之外的数据,而我需要它们在最后一列停止。
通过 API 执行此操作的最佳方法是什么?
解决方案:
您可以调用spreadsheets.values.get
获取范围内的值,然后获取第一个元素数组的长度。然后将其插入 setBasicFilter
请求。
示例代码:
# The ID and range of a sample spreadsheet.
SAMPLE_SPREADSHEET_ID = 'enter spreadsheet ID here'
SAMPLE_RANGE_NAME = 'Sheet1!A1:1'
.
.
.
# Call the Sheets API
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID,
range=SAMPLE_RANGE_NAME).execute()
values = result.get('values', [])
length = len(values[0])
.
.
.
# filter parameters
{
"setBasicFilter": {
"filter": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 0
"startColumnIndex": 0
"endColumnIndex" : length
}
}
}
}
参考文献:
我正在转换一个最初在 App Script 中完成的脚本,以将格式应用于 google 张。
这个脚本需要应用到很多sheet上,列数事先不知道。之前,在应用程序脚本中,我使用了不带参数的基本 getDataRange()
,它会 select 正确的列数和行数。我怎样才能通过 API 做同样的事情?有没有办法将结束列索引设置为数据范围的结束?
例如,我正在使用
{
"setBasicFilter": {
"filter": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 0
}
}
}
}
将首行设置为过滤器。但它也对所有空单元格应用过滤器,这些空单元格在 table 之外的数据,而我需要它们在最后一列停止。
通过 API 执行此操作的最佳方法是什么?
解决方案:
您可以调用spreadsheets.values.get
获取范围内的值,然后获取第一个元素数组的长度。然后将其插入 setBasicFilter
请求。
示例代码:
# The ID and range of a sample spreadsheet.
SAMPLE_SPREADSHEET_ID = 'enter spreadsheet ID here'
SAMPLE_RANGE_NAME = 'Sheet1!A1:1'
.
.
.
# Call the Sheets API
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID,
range=SAMPLE_RANGE_NAME).execute()
values = result.get('values', [])
length = len(values[0])
.
.
.
# filter parameters
{
"setBasicFilter": {
"filter": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 0
"startColumnIndex": 0
"endColumnIndex" : length
}
}
}
}
参考文献: