Google表格-上传pdf来驱动和发送电子邮件

时间:2018-12-07 14:17:29

标签: javascript google-apps-script google-sheets

我需要编写一个脚本,允许我将pdf上传到Google表格中的单个单元格,并通过pdf向我发送电子邮件。据我所知,没有办法将pdf或图像文件上传到Google表格,所以我想使这项工作唯一的方法是将其上传到google drive文件夹,然后将链接粘贴到pdf中。单元,然后通过电子邮件将链接发送给我。

我已经搜索了很长时间,但还没有找到任何解决方案。

Google有自己的教程,可以从工作表发送邮件。我使用了以下代码:

var SENT = 'sent';

function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; 
  var numRows = 100; 
  var dataRange = sheet.getRange(startRow, 1, numRows, 7);
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[3]; 
    var message = row[4] + dataRange.getValue(); 
    var Sent = row[6]; 
    if (Sent != SENT) { 
      var subject = 'Invoice';
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 6).setValue(SENT);
      SpreadsheetApp.flush();
    }
  }
}

这工作正常,我的问题是将文件上传到Google驱动器并将链接粘贴到单元格中。

我假设代码将以这样的开头:

function uploadFile() {
  var invoice = 'some local path to pdf file';
  var file = {
    title: 'Invoice',
    mimeType: 'application/pdf'
  };
  file = Drive.Files.insert(file, invoice);
  Logger.log('ID: %s, File size (bytes): %s', file.id, file.fileSize);
}

但是我不确定该往哪个方向走。谁能给我一些提示?

1 个答案:

答案 0 :(得分:0)

要使用Google Apps脚本将文件上传到Google云端硬盘,请考虑使用Google Picker。有关详细信息,请参见https://developers.google.com/apps-script/guides/dialogs#file-open_dialogs