Javascript BatchUpdate Google Apps脚本正在自动清除工作表
我正在将一些csv数据粘贴到google工作表中,并有下面的代码。出于某种原因,当我运行myFunction()时,数据会闪现到Google工作表中,但随后会立即消失,就好像调用了Sheet.clear()一样。当我注释掉sheet.clear()时,数据复制得很好。知道sheet.clear()为什么会被调用为无序吗?我想不出来Javascript BatchUpdate Google Apps脚本正在自动清除工作表,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在将一些csv数据粘贴到google工作表中,并有下面的代码。出于某种原因,当我运行myFunction()时,数据会闪现到Google工作表中,但随后会立即消失,就好像调用了Sheet.clear()一样。当我注释掉sheet.clear()时,数据复制得很好。知道sheet.clear()为什么会被调用为无序吗?我想不出来 function myFunction(){ var spreadsheetId = 'some Id' var csvFileId = 'some Id'
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);
}
当你在一个写之后立即从电子表格中读取数据时,你应该考虑使用Sead SeaEppApp.FrHuSH()来确保你期望在那里的所有数据都是可读的。我更喜欢尽可能长时间地将数据保存在数组中,以便通常可以执行一次读写操作。但是,如果您从一个功能切换到另一个功能,这可能是不可能的。一种选择是直接将数据传递给顺序函数,这样它们就不必再次从电子表格中读取数据。
在函数调用之前添加一个SpreadsheetApp.flush()。嘿!成功了!非常感谢!