Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 换行符-Gmail应用程序脚本_Google Apps Script_Google Sheets_Google Email Settings Api - Fatal编程技术网

Google apps script 换行符-Gmail应用程序脚本

Google apps script 换行符-Gmail应用程序脚本,google-apps-script,google-sheets,google-email-settings-api,Google Apps Script,Google Sheets,Google Email Settings Api,我已经编写了一些代码来自动处理电子表格中的电子邮件,并希望将其扩展到我的团队中,但我希望在其中添加页脚/签名,并且不必在代码中包含收件人和主题,而是从电子表格中提取。我已在电子表格中列出如下内容: 我希望电子邮件页脚看起来像这样,但当我运行脚本时,它会返回“范围” 函数EODReportEmail(){ var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“EOD电子邮件任务”);//使用活动工作表中的数据 var st

我已经编写了一些代码来自动处理电子表格中的电子邮件,并希望将其扩展到我的团队中,但我希望在其中添加页脚/签名,并且不必在代码中包含收件人和主题,而是从电子表格中提取。我已在电子表格中列出如下内容:

我希望电子邮件页脚看起来像这样,但当我运行脚本时,它会返回“范围”

函数EODReportEmail(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“EOD电子邮件任务”);//使用活动工作表中的数据
var startRow=2;//要处理的第一行数据
var numRows=sheet.getLastRow();//要处理的行数
var lastColumn=sheet.getLastColumn();//最后一列
var dataRange=sheet.getRange(startRow,1,numRows,lastColumn)//获取活动工作表的数据范围
var data=dataRange.getValues();//获取范围中每一行的值
var recipient=“shea.a。murphy@icloud.com“//电子邮件地址报告将发送到
var subject=“Shea Murphy-EOD电子邮件”//电子邮件的主题标题,例如Shea Murphy-EOD电子邮件
var footer=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“EOD电子邮件信息”).getRange(“C2”);
Logger.log(页脚);
//完成电子表格中的每一行
对于(变量i=0;i
基本上,是否有任何方法可以将代码带到收件人、主题的两个页面上,并在末尾包含签名和所有正确的格式,而不是在代码中逐行写出


我相信你的目标如下

  • 您希望使用Google Apps脚本将单元格“C2”中的富文本转换为HTML数据
对于这个问题,这个答案如何

修改点:
  • 关于
    当我运行脚本时,它返回“范围”
    ,此问题的原因是由于
    var footer=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“EOD电子邮件信息”).getRange(“C2”)的脚本
    • 在这种情况下,将检索范围对象。这样,
      Range
      被放在电子邮件的页脚
  • 为了使用从单元格中检索到的富文本作为电子邮件HTML正文的页脚,需要将富文本转换为HTML
当我看到你的问题的图片时,我可以确认你放在单元格“C2”中的富文本使用了“粗体”、“斜体”、“前景颜色”和超链接。利用这一点,我想提出以下修改脚本

修改脚本时,请按以下方式修改

修改脚本: 发件人: 致:
var range=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“EOD电子邮件信息”).getRange(“C2”);
var footer=range.getRichTextValue().getRuns().reduce((s,r)=>{
让text=r.getText().replace(//\n/g,“
”).replace(//g,”);
如果(r.getLinkUrl())text=`

了解更多信息-请联系
我相信您的目标如下

  • 您希望使用Google Apps脚本将单元格“C2”中的富文本转换为HTML数据
对于这个问题,这个答案如何

修改点:
  • 关于
    当我运行脚本时,它会返回“范围”
    ,此问题的原因是由于
    var footer=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“EOD电子邮件信息”).getRange(“C2”);
    的脚本。
    • 在这种情况下,将检索range对象。这样,
      range
      将放在电子邮件的页脚
    function EODReportEmail() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EOD Email Tasks");; // Use data from the active sheet var startRow = 2; // First row of data to process var numRows = sheet.getLastRow(); // Number of rows to process var lastColumn = sheet.getLastColumn(); // Last column var dataRange = sheet.getRange(startRow, 1, numRows, lastColumn) // Fetch the data range of the active sheet var data = dataRange.getValues(); // Fetch values for each row in the range var recipient = "shea.a.murphy@icloud.com" // Email address report will be sent to var subject = "Shea Murphy - EOD Email" // Subject heading of email e.g. Shea Murphy - EOD Email var footer = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EOD Email Information").getRange("C2"); Logger.log(footer); // Work through each row in the spreadsheet for (var i = 0; i < data.length; ++i) { var row = data[i]; // Assign each column a variable var Point1 = row[0]; // Col A: 1st point to be included in email var Point2 = row[1]; // Col B: 2nd point to be included in email var Point3 = row[2]; // Col C: 3rd point to be included in email var Point4 = row[3]; // Col D: 4th point to be included in email var Point5 = row[4]; // Col E: 5th point to be included in email var Num1 = "<b>1. </b>" // Number variables for email points var Num2 = "<b>2. </b>" var Num3 = "<b>3. </b>" var Num4 = "<b>4. </b>" var Num5 = "<b>5. </b>" var Task1 = Num1 + Point1 // Note 1 to be inlcuded in the email var Task2 = Num2 + Point2 // Note 2 to be inlcuded in the email var Task3 = Num3 + Point3 // Note 3 to be inlcuded in the email var Task4 = Num4 + Point4 // Note 4 to be inlcuded in the email var Task5 = Num5 + Point5 // Note 5 to be inlcuded in the email if (Point1 == undefined) {Task1 = " "}; if (Point2 == undefined) {Task2 = " "}; if (Point3 == undefined) {Task3 = " "}; if (Point4 == undefined) {Task4 = " "}; if (Point5 == undefined) {Task5 = " "}; // Build the email message var emailBody = '<b style="font-family:georgia;font-size:18px;font-style:italic; color: #D04A02";>EOD Report</b>'; emailBody += '<p>Please see what I have worked on today below:<p>'; emailBody += '<dl><dd>'+ Task1 +'</dd>'; emailBody += '<dl><dd>'+ Task2 +'</dd>'; emailBody += '<dl><dd>'+ Task3 +'</dd>'; emailBody += '<dl><dd>'+ Task4 +'</dd>'; emailBody += '<dl><dd>'+ Task5 +'</dd>'; emailBody += '<p>Let me know if you have any questions.<p>'; emailBody += footer // Create the email draft GmailApp.sendEmail( recipient, // Recipients subject, // Subject ' ', // Body { htmlBody: emailBody, // Options: Body (HTML) } ) } }
    var footer = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EOD Email Information").getRange("C2");
    
    var range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EOD Email Information").getRange("C2");
    var footer = range.getRichTextValue().getRuns().reduce((s, r) => {
      let text = r.getText().replace(/\n/g, "<br>").replace(/ /g, "&nbsp;");
      if (r.getLinkUrl()) text = `<a href="${r.getLinkUrl()}">${text}<\/a>`;
      const style = r.getTextStyle();
      const obj = {
        fontFamily: style.getFontFamily(),
        fontSize: style.getFontSize(),
        foregroundColor: style.getForegroundColor(),
        bold: style.isBold(),
        italic: style.isItalic(),
        strikethrough: style.isStrikethrough(),
        underline: style.isUnderline(),
      };
      const fontFamily = obj.fontFamily ? `font-family: '${obj.fontFamily}';` : "";
      const fontSize = obj.fontSize ? `font-size: ${obj.fontSize * 1.333}px;` : "";
      const foregroundColor = obj.foregroundColor ? `color: ${obj.foregroundColor};` : "";
      const bold = obj.bold ? 'font-weight: bold;' : "";
      const italic = obj.italic ? 'font-style: italic;' : "";
      const strikethrough = obj.strikethrough ? 'text-decoration: line-through;' : "";
      const underline = obj.underline ? 'text-decoration: underline;' : "";
      const keys = [fontFamily, fontSize, foregroundColor, bold, italic, strikethrough, underline];
      if (keys.some(e => e != "")) {
        s += `${keys.reduce((str, e) => str += e, '<span style="')}">${text}</span>`;
      } else {
        s += text;
      }
      return s;
    }, "");