我正在尝试使用JavaScript从Google表格中获取一些数据。我的工作表中有多个工作表。我已成功获取单个工作表的所有数据。但是我需要从所有工作表中获取所有数据。这是我的单个工作表代码。
$.ajax({
type: 'get',
url: 'https://sheets.googleapis.com/v4/spreadsheets/{sheet_id}/values/sheet1?key={API_KEY}',
async: false,
success: function(response) {
}
});
有人可以帮助我获取所有工作表的所有数据吗?
答案 0 :(得分:1)
我认为在您当前的情况下,您正在使用Sheets API的电子表格sheets.values.get方法。例如,当您要从所有工作表中检索所有值时,以下两种模式怎么样?
在此模式下,它使用Sheets API的电子表格sheets.get方法。在这种情况下,可以通过以下端点检索所有值。
终点:https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###?fields=sheets%2Fdata%2FrowData%2Fvalues%2FuserEnteredValue&key={YOUR_API_KEY}
sheets/data/rowData/values/userEnteredValue
的字段用于检索值。在此模式下,它使用Sheets API的电子表格sheets.values.batchGet方法。在这种情况下,您需要知道每个工作表名称,因为此方法中使用了工作表名称。
终点:https://sheets.googleapis.com/v4/spreadsheets/### spreadsheetId ###/values:batchGet?ranges=Sheet1&ranges=Sheet2&key={YOUR_API_KEY}
ranges=Sheet1&ranges=Sheet2&...
。如果我误解了你的问题,我表示歉意。
如果我的理解是正确的,那么如何使用Sheets API的电子表格sheets.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)
}
});
}
});