电子表格数据在提交时指定

时间:2014-08-09 02:08:25

标签: google-apps-script google-docs

我有一个主电子表格,用于收集提交的信息。如果在条目中选择了特定值,我希望将包含来自提交的数据的电子邮件通过电子邮件发送到指定的电子邮件地址(而不是表单的创建者)。我创建了一个查询,将该特定值的所有数据都提取到一个新选项卡中,但我无法找到一种简单的方法将数据从那里通过电子邮件发送给特定的人。
我试图使用我在这个网站上找到的一些脚本,但似乎找不到符合我需求的脚本。我找到的最近的是Google script, send email with form details triggered by form submit

是否更容易绕过额外的工作表,只是在输入特定值时使用表单数据创建指定电子邮件的通知?

1 个答案:

答案 0 :(得分:0)

您的问题很难理解(至少对我而言),但我认为您希望通过电子邮件将电子表格发送给某人。

   function sendyourdata()
   {
           ......
   var userEmail = Session.getActiveUser().getEmail();

   var fileName  = 'name of your Google Spreadsheet';
   var subject   = 'your title';
   var body      = 'your body text';
   var nameXLS   = subject; 

   var excelFile = exportAsExcel(fileName, subject);
   var attached = { attachments: excelFile, name: nameXLS };
   GmailApp.sendEmail(userEmail, subject, body, attached );  
          .....
   }

function exportAsExcel(nameOrigin, nameTarget)
{ // Convert a GOOGLE_SHEETS (spreadsheet)file into an Excel xlsx file
  // http://stackoverflow.com/questions/24985703/converting-google-spreadsheet-to-xlsx-or-ods-using-gas/25205566#25205566
  var file = getSpreadsheetByName(nameOrigin); // function to get a file by its name
  if (file != null)
  {  
     var spreadsheetId = file.getId();
     var file     = Drive.Files.get(spreadsheetId);  // Advanced service needs to be activated
     var url      = file.exportLinks['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
     var token    = ScriptApp.getOAuthToken();
     var response = UrlFetchApp.fetch(url, { headers: { 'Authorization': 'Bearer ' +  token }});
     file = DriveApp.createFile(response.getBlob()).setName(nameTarget);
  }  
  return file;
}

您写入Google电子表格的数据将被读取并写入excel xlsx文件。该文件将发送给活跃用户(或您当然提供的任何其他电子邮件地址) 如果您不想将Google表格转换为Excel文件,则可以跳过处理转换的所有代码。