使用来自 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>
我有一个脚本可以根据 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>