我认为在您目前的情况下,您正在使用 Sheets API 的电子表格.values.get 方法。例如,当你想从所有工作表中检索所有值时,下面的 2 种模式怎么样?
模式一:
在此模式中,它使用 Sheets API 的电子表格.get 方法。在这种情况下,所有值都可以通过以下端点检索。
端点:
https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###?fields=sheets%2Fdata%2FrowData%2Fvalues%2FuserEnteredValue&key={YOUR_API_KEY}
-
sheets/data/rowData/values/userEnteredValue 的字段用于检索值。
模式2:
在此模式中,它使用 Sheets API 的电子表格.values.batchGet 方法。在这种情况下,您需要知道每个工作表名称,因为此方法中使用工作表名称。
端点:
https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###/values:batchGet?ranges=Sheet1&ranges=Sheet2&key={YOUR_API_KEY}
- 作为查询参数,请设置为
ranges=Sheet1&ranges=Sheet2&...。
注意:
- 在您的脚本中,您使用 API 密钥。在这种情况下,电子表格需要公开共享。
参考资料:
如果我误解了您的问题,我深表歉意。
编辑:
- 您选择了模式 2。
- 您希望通过检索电子表格中的所有工作表名称来创建查询参数。
如果我的理解是正确的,如何使用 Sheets API 的电子表格.get 方法检索工作表名称。终点是
https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###?fields=sheets%2Fproperties%2Ftitle&key={YOUR_API_KEY}
在这种情况下,sheets/properties/title 用作fields。这样,可以检索所有工作表名称。当这反映到你的脚本中时,这个修改怎么样?我认为这是一个简单的修改。所以请根据您的情况进行修改。我认为您的情况有几种解决方案。所以请认为这只是其中之一。
修改脚本:
$.ajax({
type: 'get',
url: 'https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###?fields=sheets%2Fproperties%2Ftitle&key={API_KEY}',
async: false,
success: function(response) {
const queryParams = response.sheets.reduce((s, e, i) => s += "ranges=" + e.properties.title + (i < response.sheets.length - 1? "&" : ""), "");
$.ajax({
type: 'get',
url: 'https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###/values:batchGet?key={API_KEY}&' + queryParams,
async: false,
success: function(r) {
console.log(r)
}
});
}
});