我有以下 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 列中有文本“Found”,但有時沒有重復的行,因此我希望該函式不回傳錯誤:
GoogleJsonResponseException:對 sheet.spreadsheets.batchUpdate 的 API 呼叫失敗,錯誤:必須至少指定一個請求。
并繼續執行在完成上述 deleteRows 函式后運行的下一個函式。
如果沒有請求,如何防止回傳錯誤?
uj5u.com熱心網友回復:
在你的情況下,下面的修改怎么樣?
從:
Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
到:
if (requests.length > 0) {
Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
}
- 通過這種修改,當
requests有值時,Sheets.Spreadsheets.batchUpdate運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338173.html
標籤:javascript 谷歌应用程序脚本 谷歌表格 google-sheets-api
上一篇:如何將List<Object[]>轉換為GoogleSheetValueRange的List<List<Object>>
