在您的情况下,我的理解如下。
- 有很多行被删除。
- 行不继续。因此,必须使用 逐行删除行
deleteRow()
。
如果我的理解是正确的,那么这个修改呢?
修改点:
- 使用 Sheets API 的批量更新。
- 通过使用 Sheets API,可以通过一次 API 调用删除离散行。
- 创建被删除的行列表作为 Sheets API 的请求正文。
- 使用请求正文通过 Sheets API 的 batchUpdate 删除行。
要使用 Sheets API,请在 Advanced Google Services 和 API 控制台中启用 Sheets API。关于如何启用它们,请在此处查看。
修改后的脚本:
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
.
- 在运行此之前,请输入电子表格 ID 和具有要删除的行的工作表 ID。
如果这不是你想要的结果,我很抱歉。