Google apps script 如何通过电子邮件发送工作表的特定部分?

Google apps script 如何通过电子邮件发送工作表的特定部分?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,当我在单元格L6中键入Send时,这个脚本会向我的电子邮件发送一份pdf副本,这段代码会发送整个表单,我只需要发送A1:J22,有什么想法吗 function onEdit2(e) { var sheet = SpreadsheetApp.getActiveSheet(); var r = sheet.getRange('L6').getValue(); if (r == "Send") { var ss = SpreadsheetApp.getActiveSpreadsh

当我在单元格L6中键入Send时,这个脚本会向我的电子邮件发送一份pdf副本,这段代码会发送整个表单,我只需要发送A1:J22,有什么想法吗

function onEdit2(e) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var r  = sheet.getRange('L6').getValue();
  if (r == "Send") {
    var ss = SpreadsheetApp.getActiveSpreadsheet()
    var ssID = ss.getId();
    var sheetgId = ss.getActiveSheet().getSheetId();
    var sheetName = ss.getName();

    var token = ScriptApp.getOAuthToken();

    var email = "EMAIL HERE";
    var subject = "Daily report ";
    var body = "Please find the attached Daily report";

    var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?" 
    + "format=xlsx" +  "&gid="+sheetgId+ "&portrait=true" + 
      "&exportFormat=pdf";

    var result = UrlFetchApp.fetch(url, {
      headers: {
        'Authorization': 'Bearer ' +  token
      }
    });

    var contents = result.getContent();

    MailApp.sendEmail(email,subject ,body, {
      attachments: [{
        fileName: sheetName + ".pdf", 
        content: contents, 
        mimeType: "application//pdf"
      }]
    })
  }
}
  • 您希望检索
    A1:J22
    的单元格并将其创建为PDF数据
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

修改点:
  • 在此修改中,创建一个时间表,并将
    A1:J22
    单元格的值复制到该时间表中。然后,将时间表转换为PDF文件。并且,删除时间表
修改脚本: 修改脚本时,请按以下方式修改

function onEdit2(e) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var r  = sheet.getRange('L6').getValue();
  if (r == "Send") {
    var ss = SpreadsheetApp.getActiveSpreadsheet()
    var ssID = ss.getId();

    var sheet = ss.getActiveSheet(); // Added
//    var sheetgId = ss.getActiveSheet().getSheetId(); // removed

    var sheetName = ss.getName();
    var token = ScriptApp.getOAuthToken();
    var email = "EMAIL HERE";
    var subject = "Daily report ";
    var body = "Please find the attached Daily report";

    var tempSheet = ss.insertSheet("tempSheet"); // Added
    sheet.getRange("A1:J22").copyTo(tempSheet.getRange(1, 1)); // Added
    SpreadsheetApp.flush(); // Added
    var sheetgId = tempSheet.getSheetId(); // Added

    var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?" + "format=xlsx" +  "&gid="+sheetgId+ "&portrait=true" + "&exportFormat=pdf";
    var result = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' +  token}});
    var contents = result.getContent();
    MailApp.sendEmail(email,subject ,body, {attachments: [{fileName: sheetName + ".pdf", content: contents, mimeType: "application//pdf"}]});

    ss.deleteSheet(tempSheet); // Added
  }
}
参考资料:

如果我误解了你的问题,而这不是你想要的方向,我道歉。

它工作得很好!开箱思考,谢谢塔奈克。@Aboude zoua谢谢你的回答。我很高兴你的问题解决了。