[英]BatchUpdate Google Apps Script is clearing sheet automatically
我正在將一些 csv 數據粘貼到谷歌表中,並具有以下代碼。 出於某種原因,當我運行 myFunction() 時,數據會閃現到 Google 表格中,但隨后立即消失,幾乎就像在調用 sheet.clear() 一樣。 當我注釋掉 sheet.clear() 時,數據復制過來就好了。 任何想法為什么 sheet.clear() 可能會被亂序調用? 我想不通。
function myFunction(){
var spreadsheetId = 'some Id'
var csvFileId = 'some Id'
var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName('Sheet1');
sheet.clear();
getCSVData(csvFileId, spreadsheetId);
}
function getCSVData(csvFileId, spreadsheetId){
var data = DriveApp.getFileById(csvFileId)
.getBlob()
.getDataAsString();
var sheetId = SpreadsheetApp.openById(spreadsheetId)
.getSheets()[0]
.getSheetId();
var resource = {
requests: [
{
pasteData: {
data: data,
coordinate: { sheetId: sheetId,
rowIndex: 0,
columnIndex: 0 },
type: 'PASTE_VALUES',
delimiter: ","
},
}
],
includeSpreadsheetInResponse: true,
};
Sheets.Spreadsheets.batchUpdate(resource, spreadsheetId);
}
每當您在寫入后立即從電子表格中讀取數據時,您應該考慮使用 SpreadsheetApp.flush() 以確保您期望存在的所有數據實際上都是可讀的。 我更喜歡將我的數據盡可能長時間地保存在 arrays 中,這樣我通常可以執行一次讀取和寫入。 但是,如果您從一個 function 切換到另一個可能是不可能的。 一種選擇是將數據直接傳遞給順序函數,這樣它們就不必再次從電子表格中讀取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.