繁体   English   中英

Sheet Set value 制作电子表格的副本

[英]Sheet Set value the make copy of spreadsheet

我正在尝试从 model 生成多个电子表格,

 function copySpreadSheet() { var filesName = ['file1', 'file2', '...'] filesName.forEach(function copySpreadSheet(fileName) { var spreadsheet = SpreadsheetApp.openById('model_ID'); var sheet = spreadsheet.getSheetByName('REF'); sheet.getRange('A2').setValue(fileName); var destFolder = DriveApp.getFolderById("Folder_ID") DriveApp.getFileById(spreadsheet.getId()).makeCopy(fileName, destFolder); }); }

问题是我在“A2”范围内的工作表中所做的更改未应用到副本中。 有什么建议吗?

谢谢

forEach()循环中的代码是异步执行的

这意味着您的工作表可能会在设置新值之前全部复制。

您可以通过实施强制代码等待的SpreadsheetApp.flush())Utilities.sleep()请求来避免这种情况。

样本:

function copySpreadSheet() {
  var filesName = ['file1', 'file2', '...']
  filesName.forEach(function copySpreadSheet(fileName) {
   Logger.log(fileName);
    var spreadsheet = SpreadsheetApp.openById('model_ID');
    var sheet = spreadsheet.getSheetByName('REF');
    SpreadsheetApp.flush();
    sheet.getRange('A2').setValue(fileName);
    SpreadsheetApp.flush();
    var destFolder = DriveApp.getFolderById("Folder_ID")
    Utilities.sleep(1000);
    DriveApp.getFileById(spreadsheet.getId()).makeCopy(fileName, destFolder);
    
  }); 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM