【问题标题】:Get the latest copy and email that to yourself获取最新的副本并将其通过电子邮件发送给自己
【发布时间】:2019-06-14 09:11:10
【问题描述】:

我刚开始学习谷歌脚本,没有经验。我无法获取原始文档的新创建副本并将其发送给自己。出于某种原因,它一直在发送原始邮件。

function Every Week() {  


ScriptApp.newTrigger("Weekly")  
.timeBased()  
.everyDays(7)  
.create();  
var sheet = SpreadsheetApp.getActive();  
var destFolder = DriveApp.getFolderById("xxxxxxx");   
DriveApp.getFileById(sheet.getId()).makeCopy("Loads and 
date"+sheet.getName(), destFolder);     

var files = DriveApp.getFiles();  
while (files.hasNext())   
var file = files.next();  
var id = file.getId();  
var lastUpdated = DriveApp.getFileById(id).getLastUpdated();  

var MyLink = sheet.getUrl()   
var MyUser = Session.getActiveUser().getEmail();  
var files = DriveApp.g  
MailApp.sendEmail({ to: MyUser, subject: 'Weekly title', body: MyLink, }); 
} ;

我不断获得原始模板而不是新副本。

【问题讨论】:

  • 欢迎。我认为下一步是尽最大努力清理代码。有几个不必要的代码行。

标签: javascript email google-apps-script google-sheets google-drive-api


【解决方案1】:

试试这个:

我认为这就是你想要完成的。

function Weekly() {
  var Found=false;
  var trgs=ScriptApp.getProjectTriggers();
  for(var i=0;i<trgs.length;i++){
    if(trgs[i].getHandlerFunction()=="Weekly"){
      Found=true;
    }
  }
  if(!Found){
    ScriptApp.newTrigger("Weekly").timeBased().everyDays(7).create();  
  }
  var spreadsheet=SpreadsheetApp.getActive();  
  var destFolder = DriveApp.getFolderById("id");   
  var newSpreadsheet=DriveApp.getFileById(spreadsheet.getId()).makeCopy("New Title", destFolder);     
  var MyLink = spreadsheet.getUrl()   
  var MyUser = Session.getActiveUser().getEmail();    
  MailApp.sendEmail(MyUser,'Weekly title',MyLink); 
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-22
    • 2021-04-08
    • 2018-05-21
    • 2015-08-25
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2018-05-17
    相关资源
    最近更新 更多