使用来自 Google Sheet(Google Apps 脚本)的输入换行文本

Wrap text using input from Google Sheet (Google Apps Script)

我有一个脚本可以根据 Google Sheet 中的单元格内容生成一封自动电子邮件。是否可以限制电子邮件中单元格输出的宽度,强制文本换行?我试过如下使用 textarea 标签:

+ <textarea rows="4" cols="20">

+ sheet.getRange(6,9,1,1).getValue()   

+ </textarea>

但是,这只是输出为“+ sheet.getRange(6,9,1,1).getValue() +”(即它不会生成单元格内容)。

这可能吗?

以下是我构建脚本的方式:

function EmailFormConfirmation() { 

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  Utilities.sleep(60000);

  var sheet = ss.getSheetByName("Form responses");

  var lock = LockService.getPublicLock();

  lock.waitLock(60000);

  lock.releaseLock();

  var email = sheet.getRange(2,9,1,1).getValue();  

  var message = "<HTML><BODY>"

    + "<P >Hi " 

    + sheet.getRange(4,9,1,1).getValue()

    + ","

    etc.

EDIT 下面生成单元格内容,但不换行文本。

var htmlMsg = "<HTML><BODY>"

    + "<textarea rows='4' cols='10'>"

    + sheet.getRange(6,9,1,1).getValue()   

    + "</textarea>"

    + "</HTML></BODY>";


    MailApp.sendEmail(email, "LMI Request", "", {htmlBody: htmlMsg}); 

为了回答问题 re: textbox,下面按照你的要求做了

  var htmlMsg = "<HTML><BODY>"
  + "<textarea rows='4' cols='20'>"
  + sheet.getRange(6,9,1,1).getValue()
  + "</textarea>"
  + "</BODY></HTML>";
  GmailApp.sendEmail("m....l@gmail.com", "subject","hi" , {htmlBody: htmlMsg});

注意单引号和双引号的使用方式。

这是一个示例,说明如何使用模板来构建电子邮件回复。文档可以在这里找到: https://developers.google.com/apps-script/guides/html/templates

在code.gs

function myFunction(){
  var sheet = SpreadsheetApp .....
  var value = sheet.getRange(6,9,1,1).getValue();
  var emailHtml = buildTemplate(value);
   GmailApp.sendEmail("person@example.com", "subject","Hello", {htmlBody: emailHtml});  
}

function buildTemplate(values){  
  var template = HtmlService.createTemplateFromFile('emailTemplate');
  template.tmpValues = values;
  return template.evaluate().getContent();
}

在emailTemplate.html

<html>
  <body>
       <textarea rows='4' cols='20'>
         <?=tmpValues?>
       </textarea>
  </body>
</html>