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
是运行。
我有以下 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
是运行。