我每周都会运行脚本,从文档中删除行,然后将这些值粘贴到另一张表进行数据分析,但随着文档的增长(+20,0000行),我的脚本会超时。无论如何如何优化脚本以使用更少的处理/内存并运行更快?
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[0] == 'delete' || row[0] == '') {
data.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
答案 0 :(得分:0)
试
var result = values.filter(row => row[0] !== 'delete' && row[0] !== '');
var rowsDeleted = values.length - result.length;
答案 1 :(得分:0)
在您的情况下,我理解如下。
deleteRow()
逐行删除行。如果我的理解是正确的,那么这个修改怎么样?
要使用表格API,请在高级Google服务和API控制台上启用表格API。关于如何启用它们,请查看here。
var spreadsheetId = "#####"; // Please input spreadsheet ID.
var sheetId = "#####"; // Please input sheet ID.
var deleteRows = [];
for (var i = values.length - 1; i >= 0; i--) {
if (values[i] == "delete" || values[i] == "") {
deleteRows.push({
"deleteRange": {
"shiftDimension": "ROWS",
"range": {
"startRowIndex": i,
"endRowIndex": i + 1,
"sheetId": sheetId
}
}
});
}
}
Sheets.Spreadsheets.batchUpdate({"requests": deleteRows}, spreadsheetId);
values
。如果这不是您想要的结果,我很抱歉。