#google-apps-script #google-sheets
#google-apps-script #google-таблицы
Вопрос:
У меня был код, который помогал мне сохранять в формате PDF список счетов. Я делал это, просматривая список наших клиентов и фильтруя «сводную таблицу счетов» с идентификатором клиента, а затем сохраняя результирующую сводную таблицу в формате PDF.
С прошлой недели мой поток больше не работает. Я провел некоторое тестирование и в конечном итоге понял, что не работает эта функция updateFilteredPivot(). Фильтр применяется только при первом запуске итерации, когда в сводной таблице нет активного фильтра. Есть идеи о том, что могло измениться и как обойти эту проблему?
function updateFilteredPivotTable(lastRow, filter, pivotTableSheetName) {
var lastRow = lastRow
var filter = filter.toString()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var pivotTableSheetName = pivotTableSheetName
var pivotTableSheetId = ss.getSheetByName(pivotTableSheetName).getSheetId();
var fields = "sheets(properties.sheetId,data.rowData.values.pivotTable)";
var sheets = Sheets.Spreadsheets.get(ss.getId(), {fields: fields}).sheets;
for (var i in sheets) {
if (sheets[i].properties.sheetId == pivotTableSheetId) {
var pivotTableParams = sheets[i].data[0].rowData[0].values[0].pivotTable;
break;
}
}
// Update source range:
pivotTableParams.source.endRowIndex = lastRow ; // improve get last row with data in column A
pivotTableParams.criteria = { 26: {"visibleValues": [filter]}}; // set filter field column 26 equal to filter
// Send back the updated params
var request = {
"updateCells": {
"rows": {
"values": [{
"pivotTable": pivotTableParams
}]
},
"start": {
"sheetId": pivotTableSheetId
},
"fields": "pivotTable",
}
};
Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());
}
Комментарии:
1. Вы получаете какую-либо ошибку? Если я правильно понял, это заканчивается на первом листе, верно? Не могли бы вы поделиться примером этого?
2. я не получаю никакой ошибки. Просто итерация продолжается, но печать одной и той же сводной таблицы повторяется. Этот сценарий выше больше не обновляет сводную таблицу после первой итерации. Я провел некоторый тест, и аргументы, переданные функции, верны, но обновление не происходит. Конечный результат, который я получаю, — это тот же PDF, умноженный на количество итераций.