Я использую Google Sheet для вывода хорошей диаграммы с помощью Google Visualization API.
Недавно я переместил свой код, который создает dataTable, в Google Sheets v4 из Google Sheets v3, и я больше не могу этого добиться, поскольку v4 не поддерживает прямую манипуляцию «запросами».
Я создаю несколько диаграмм на основе одних и тех же данных, поэтому не могу переставить столбцы в реальном листе.
Я знаю, что у массива или массива JSON нет метода для смещения / перестановки столбцов, но я смог сделать это в v3 очень просто, просто запросив "SELECT A, B, D, C), например так:
function makeApiCall() {
var queryString = encodeURIComponent('SELECT A,B,D,C');
var tqURL = new google.visualization.Query(
'https://docs.google.com/spreadsheets/d/*yourspreadsheetid*/gviz/tq?gid=*yourworkbookid*&headers=1&tqx=responseHandler:handleTqResponse' + '&access_token=' + encodeURIComponent(gapi.auth.getToken().access_token));
tqURL.send(handleTqResponse);
}
function handleTqResponse(resp) {
var dataTable = resp.getDataTable();
}
Это вывело бы диаграмму с переставленными столбцами A, B, D, C.
Вот что я попробовал в v4:
function makeApiCall() {
var params = {
spreadsheetId: 'my-spreadsheet-id',
range: 'Sheet1!A:D', // Retrieve the values of "A:D".
};
var request = gapi.client.sheets.spreadsheets.values.get(params); // Modified
request.then(function(response) {
var values = response.result.values.map((e) => [e[0], e[1], e[3], e[4]]); // THIS doesn't work at all
var w = new google.visualization.ChartWrapper({dataTable: values}); // Added
var dataTable = w.getDataTable();
}, function(reason) {
console.error('error: ' + reason.result.error.message);
});
}
Может ли это быть достигнуто с помощью чего-то подобного?
var values = response.result.values.map((e) => [e[0], e[1], e[3], e[4]]); // THIS doesn't work at all
Или, может быть, просто указав несколько диапазонов, как это?
range: 'Sheet1!A:B','Sheet1!D:D','Sheet1!C:C' // Retrieve the values of "A:B",D:D,C:C /THIS doesn't work