【问题标题】:Creating and Sending sheets in the same function在同一功能中创建和发送工作表
【发布时间】:2018-06-26 12:25:50
【问题描述】:

我正在尝试创建一个简单的脚本,该脚本具有创建新工作表的功能和通过电子邮件发送这些工作表的主要功能。当我尝试调用该函数在主函数中创建工作表时,它会通过电子邮件发送空工作表。这是我正在做的一个示例:

function createnewsheets(mainfile, newsheetname) {
  mainfile.insertSheet(newsheetname);
  var sheet = mainfile.getSheetByName(newsheetname);
  var cell = sheet.getRange("A1");
  cell.setValue("Hello");
  return sheet;   
}
function doall(){
  var mainfile = SpreadsheetApp.openByUrl('https://docs.google.com/...');
  var sheet = createnewsheets(mainfile, "random");
  ////code to send sheet as attachment in email///
}

完整代码是here

现在这会发送空工作表,但如果首先执行 createnewsheets 而不返回并获取名称为 doeverything 的工作表,它确实有效。

我认为这可能是创建工作表后等待的问题,所以我也尝试了Utilities.sleep(),但这并没有改变任何东西。

知道如何改进会很有帮助。提前致谢。

【问题讨论】:

  • 抱歉,我的意思是 Utilities.sleep() 而不是 wait。谢谢

标签: google-apps-script google-sheets


【解决方案1】:

Google Apps 脚本应用在 Google Sheet in batches 上所做的更改:

脚本通常需要从电子表格中读取数据,执行计算,然后将数据结果写入电子表格。 Google Apps 脚本已经有一些内置的优化,例如使用前瞻缓存来检索脚本可能获取的内容和写入缓存来保存可能设置的内容。

使用SpreadsheetApp.flush()“强制”应用您的脚本在通过电子邮件发送表格之前所做的更改。

相关

【讨论】:

    猜你喜欢
    • 2022-08-14
    • 2012-09-06
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多