Preventing GoogleJsonResponseException: API call to sheets.spreadsheets.batchUpdate failed with error: Must specify at least one request

Preventing GoogleJsonResponseException: API call to sheets.spreadsheets.batchUpdate failed with error: Must specify at least one request

我有以下 Google 电子表格函数:

function deleteRows() {
  const sheetName = "Sheet"; // Please set the sheet name.
  
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName(sheetName);
  const sheetId = sheet.getSheetId();
  const requests = sheet
    .getRange(`S1:S${sheet.getLastRow()}`)
    .createTextFinder("Found")
    .findAll()
    .map(r => r.getRow())
    .reverse()
    .map(r => ({deleteDimension:{range:{sheetId:sheetId,startIndex:r - 1,endIndex:r,dimension:"ROWS"}}}));
  Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
}

脚本使用API的batchUpdate删除重复的行,如果在S列中有文本“找到”,但有时没有重复的行,因此我希望函数不要 return 错误:

GoogleJsonResponseException: API call to sheets.spreadsheets.batchUpdate failed with error: Must specify at least one request.

然后在完成上述 deleteRows 函数后继续执行下一个函数。

没有请求时如何避免return报错?

你的情况,下面的修改怎么样?

发件人:

Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());

收件人:

if (requests.length > 0) {
  Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
}
  • 通过这种修改,当requests有值时,Sheets.Spreadsheets.batchUpdate是运行。