当前位置: 首页 > 知识库问答 >
问题:

通过电子邮件将谷歌工作表发送到PDF的脚本|如何在电子邮件主题行中设置日期格式

羊舌子瑜
2023-03-14

有一个脚本,我从这个论坛拉,在很大程度上它的工作非常好。只是在编码我所做的一些更改时有困难。

>

尝试制作工作表的第一行[第3行],并在生成PDF时忽略前两行。

任何帮助非常感谢。

function emailPdf(){ // this is the function to call
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheets()[3];
  var shName = sh.getName()

  sendSpreadsheetToPdf(3, shName, ('myemail@gmail.com'), sh.getRange('B3').getValue(), sh.getRange('B4').getValue(), sh.getRange('D28').getValue());
}
function sendSpreadsheetToPdf(sheetNumber, pdfName, email, subject, date, htmlbody) {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId();
  var sheetId = sheetNumber ? spreadsheet.getSheets()[sheetNumber].getSheetId() : null;
  var url_base = spreadsheet.getUrl().replace(/edit$/,'');

  var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf

      + (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId)) 
      // following parameters are optional...
      + '&size=A4'      // paper size
      + '&portrait=true'    // orientation, false for landscape
      + '&fitw=true'        // fit to width, false for actual size
      + '&sheetnames=true&printtitle=false&pagenumbers=true'  //hide optional headers and footers
      + '&gridlines=false'  // hide gridlines
      + '&fzr=false';       // do not repeat row headers (frozen rows) on each page

  var options = {
    headers: {
      'Authorization': 'Bearer ' +  ScriptApp.getOAuthToken(),
    }
  }

  var response = UrlFetchApp.fetch(url_base + url_ext, options);
  var blob = response.getBlob().setName(pdfName + '.pdf');
  if (email) {
    var mailOptions = {
      attachments:blob, htmlBody:htmlbody
    }
MailApp.sendEmail(
      email, 
      subject+" | "+date+" (" + pdfName +")", 
      "html content only", 
      mailOptions);

MailApp.sendEmail(
      Session.getActiveUser().getEmail(), 
      subject+" | "+date+" (" + pdfName +")",
      "html content only", 
      mailOptions);
  }
}

共有1个答案

洪光霁
2023-03-14

细读:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

var prettyTime= Utilities.formatDate(date,'America/Los_Angeles', "EEE MMM dd" );

如果在转换为pdf之前隐藏前两行会发生什么?

 类似资料:
  • 我有谷歌发票电子表格,我用vlookup公式从其他(数据)表中获取数据。只有我需要在发票表中输入行号。所以我创建了一个循环脚本,其中数据表中的自动行号将输入到发票表中,并发送带有PDF附件的电子邮件。当运行该脚本时,请正确输入每行的行号,但电子邮件不会发送。

  • 我是谷歌脚本的新手,不知道是否有人能帮我。 我有一个共享的谷歌电子表格,基本上是用新的员工信息更新行。 我希望只有当插入这些新员工行时,特定列(比如F列)上的“ABC”字符串匹配时,才会触发电子邮件。基本上,电子邮件触发器会让我们的团队知道如何设置新的员工帐户。 有人能帮我吗?我不知道如何进行字符串匹配,也不知道如何让它专门发送给固定的电子邮件收件人。我已经安装了Python、gspread和gd

  • 我有一个谷歌脚本的问题。基本上,我的目标是让脚本检查客户的案例是否得到解决,然后向他们发送电子邮件,告知问题已经解决。我已经完成了发送电子邮件的逻辑,但每次我尝试将其应用到电子表格中时,都会出现错误:

  • 我已经建立了一个谷歌表单,我的回复被记录在一个电子表格中。理想情况下,我希望回复也通过电子邮件发送。

  • 我正在使用Google表单将多条消息合并到一个每日电子邮件中,使用脚本和每日定时触发器发送(代码从这里复制,下面是我的版本)。 例如,一个电子邮件地址是abc@example.co.uk,他们收到了电子邮件,但在我的收件箱(xyz@example.co.uk)中是发送到abc@example.co.uk的电子邮件,但不是转发的消息或回复。 有什么办法阻止这一切吗?

  • 问题内容: 在我的中,我具有以下内容: 我的电子邮件代码: 当然,如果通过设置调试服务器,则可以在终端中看到该电子邮件。 但是,我实际上如何不将电子邮件发送到调试服务器,而是发送到user@gmail.com? 阅读你的答案后,让我弄明白一点: 你不能使用localhost(简单的ubuntu pc)发送电子邮件吗? 我认为在django 1.3中已经过时了,取而代之的是? 问题答案: 将电子邮件