- Вы хотите получить значения из
gapi.client.sheets.spreadsheets.values.batchGet()
. - Вы хотите получить значения в виде массива.
- Вы уже можете получить значения, используя таблицы API с
gapi.client.sheets.spreadsheets.values.batchGet()
.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Шаблон 1:
В этом шаблоне полученные значения извлекаются в виде массива в gapi.client.init()
.
Модифицированный скрипт:
unction onGAPILoad() {
gapi.client.init({
// Don't pass client nor scope as these will init auth2, which we don't want
apiKey: API_KEY,
discoveryDocs: DISCOVERY_DOCS,
}).then(function () {
console.log('gapi initialized')
chrome.identity.getAuthToken({interactive: true}, function(token) {
gapi.auth.setToken({
'access_token': token,
});
gapi.client.sheets.spreadsheets.values.batchGet({
spreadsheetId: SPREADSHEET_ID,
majorDimension: "COLUMNS",
ranges: ["A2:A"]
}).then(function(values) {
const ar = values.result.valueRanges[0].values; // <--- Modified
console.log(ar); // <--- Modified
});
})
}, function(error) {
console.log('error', error)
});
}
- Вы можете получить значения с помощью
const ar = values.result.valueRanges[0].values
.
Шаблон 2:
В этом шаблоне полученные значения передаются другой функции в качестве аргументов.
Модифицированный скрипт:
function onGAPILoad() {
gapi.client.init({
// Don't pass client nor scope as these will init auth2, which we don't want
apiKey: API_KEY,
discoveryDocs: DISCOVERY_DOCS,
}).then(function () {
console.log('gapi initialized')
chrome.identity.getAuthToken({interactive: true}, function(token) {
gapi.auth.setToken({
'access_token': token,
});
gapi.client.sheets.spreadsheets.values.batchGet({
spreadsheetId: SPREADSHEET_ID,
majorDimension: "COLUMNS",
ranges: ["A2:A"]
}).then(function(values) {
getValues(values);
});
})
}, function(error) {
console.log('error', error)
});
}
function getValues(e) {
const values = e.result.valueRanges[0].values;
console.log(values);
}
- Вы можете получить значения с помощью функции
getValues
.
Шаблон 3:
В этом шаблоне извлеченные значения могут использоваться в функции onGAPILoad
.
Модифицированный скрипт:
async function onGAPILoad() {
const getValues = () => {
return new Promise((resolve, reject) => {
gapi.client.init({
// Don't pass client nor scope as these will init auth2, which we don't want
apiKey: API_KEY,
discoveryDocs: DISCOVERY_DOCS,
}).then(function () {
console.log('gapi initialized')
chrome.identity.getAuthToken({interactive: true}, function(token) {
gapi.auth.setToken({
'access_token': token,
});
gapi.client.sheets.spreadsheets.values.batchGet({
spreadsheetId: SPREADSHEET_ID,
majorDimension: "COLUMNS",
ranges: ["A2:A"]
}).then(function(values) {
resolve(values);
});
})
}, function(error) {
reject(error);
});
});
}
const res = await getValues().catch(e => console.log(e));
const values = res.result.valueRanges[0].values;
console.log(values);
}
- Вы можете получить значения в последней строке.
Примечание:
- В вашем запросе используется только один диапазон. Поэтому я использовал
res.result.valueRanges[0].values
. Если вы хотите использовать несколько диапазонов, извлеките значения из res.result.valueRanges
, используя l oop.
Ссылка:
Если я неправильно понял ваш вопрос, а это не то направление, которое вам нужно, я прошу прощения.