У меня была та же проблема, и я исправил ее после долгих исследований.
Хитрость заключается в добавлении пустого ключа "valueBucket" в каждую строку, например:
"rows": [
{
"sourceColumnOffset": 0,
"showTotals": true,
"sortOrder": "DESCENDING",
"valueBucket": {}
},
Затемстроки будут упорядочены по столбцу Общая сумма.
Я нашел ответ здесь: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets#SortOrder
Он говорит: «Например, в сводной таблице с одной группой строк и двумя столбцамигрупп, группа строк может содержать до двух значений. Первое значение соответствует значению в первой группе столбцов, а второе значение соответствует значению во второй группе столбцов. Если значения не указаны, это будетуказать, что строка должна быть отсортирована в соответствии с «общим итогом» по группам столбцов . Если указано одно значение, это будет соответствовать использованию «общего» этого сегмента. »
ВВ вашем случае данные были взяты отсюда: https://developers.google.com/sheets/api/samples/pivot-tables
Проверьте этот пример листа: https://docs.google.com/spreadsheets/d/1f5s03qLAVaLfUfkyvjZtllVNz0FxAmn2jEmL9wYVGh8/edit?usp=sharing
В примере эта функция на основе вашего кода создала сводную таблицу сзначения, заказанные Гранd Общий столбец.
function makePivot() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheetId = sheet.getSheetByName("Data").getSheetId();
// Create a new sheet which will contain our Pivot Table
var pivotTableSheet = sheet.insertSheet("Pivot1");
var pivotTableSheetId = pivotTableSheet.getSheetId();
var request = {
"updateCells": {
"rows": {
"values": [
{
"pivotTable": {
"source": {
"sheetId": sourceSheetId,
"startRowIndex": 0,
"startColumnIndex": 0,
"endRowIndex": 20,
"endColumnIndex": 7
},
"rows": [
{
"sourceColumnOffset": 0,
"showTotals": true,
"sortOrder": "DESCENDING",
"valueBucket": {}
},
{
"sourceColumnOffset": 1,
"showTotals": true,
"sortOrder": "DESCENDING",
"valueBucket": {}
}
],
"columns": [
{
"sourceColumnOffset": 4,
"sortOrder": "ASCENDING",
"showTotals": true}
],
"values": [
{
"summarizeFunction": "SUM",
"sourceColumnOffset": 3
}
],
"valueLayout": "HORIZONTAL"
}
}
]
},
"start": {
"sheetId": pivotTableSheetId,
"rowIndex": 2,
"columnIndex": 0
},
"fields": "pivotTable"
}
}
Sheets.Spreadsheets.batchUpdate({'requests': [request]}, sheet.getId());
}
Надеюсь, это поможет!