【发布时间】:2017-03-03 08:28:13
【问题描述】:
我正在尝试将 Google 电子表格另存为 pdf,并在每次编辑电子表格中的特定单元格时将其邮寄给自己。我有将电子表格保存为 pdf 并通过电子邮件发送的脚本,它可以工作,而且我还有一个 onEdit(e) 脚本,它完全符合我的要求。但是当我把它们放在一起时,它不起作用。这是脚本:
function onEdit(e) {
var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("booking");
var index = sheet1.getRange('O5').getValue();
if(index == '#N/A') return;
var email = "myemail@gmail.com";
var subject = "Subject";
var sheet3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Invoice_ENG");
var pdfname = ("PDF.pdf");
var message = ("Hello!");
//Since I can't export only one sheet, I create a new spreadsheet, copy the sheet
//into the new spreadsheet and save the new spreadsheet as pdf
var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export");
sheet3.copyTo(newSpreadsheet);
//I erase the default Sheet1 from the new Spreadsheet
var ss = newSpreadsheet.getSheetByName('Sheet1');
ss.activate();
newSpreadsheet.deleteActiveSheet();
//Create pdf --- THIS IS WHERE THE SCRIPT SOMEHOW STOPS!
var pdf = DriveApp.getFileById(newSpreadsheet.getId()).getAs('application/pdf').getBytes();
var attach = {fileName:pdfname,content:pdf, mimeType:'application/pdf'};
//Send mail
GmailApp.sendEmail(email, subject, message, {attachments:[attach]});
//Erase the newly created spreadsheet
DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(true);
}
“导出为 pdf”任务是否需要使用 onEdit 函数完成?因为我在另一个每天触发的脚本中做同样的事情,而且效果很好。
【问题讨论】:
标签: pdf google-apps-script google-sheets eventtrigger