2015-04-14 2 views
0

У меня есть сценарий, который создает автоматическую электронную почту из содержимого ячеек в Листе Google. Можно ли ограничить ширину вывода ячейки в сообщении электронной почты, заставляя текст обернуть? Я попытался с помощью TEXTAREA теги следующим образом:Оберните текст, используя ввод из Листа Google (Google Apps Script)

+ <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}); 
+0

Вы создаете это с Классом HtmlService шаблонами или струнное зданием? –

+0

Спасибо за ваш ответ Спенсер. Я не использовал шаблоны, поэтому я предполагаю, что это строковое построение? (Я новичок). Я скопировал сценарий выше. Я хотел бы загрузить более сложный «стилизованный» шаблон, который генерирует содержимое ячейки, но я думаю, что это выходит за рамки моих возможностей. –

+0

Мне нужно будет посмотреть больше кода, так как этот работает для меня. Также как хорошая практика, вы должны getValue только один раз, а затем используйте Array, например, getRange (2,9,3,1), десять для сообщения, которое вы будете использовать 'email [2] [0]', и для подлинный адрес электронной почты [0] [0] '. – Kriggs

ответ

0

Чтобы ответить на вопрос повторно: текстовое поле, следующее сделал, как вы просили

var htmlMsg = "<HTML><BODY>" 
    + "<textarea rows='4' cols='20'>" 
    + sheet.getRange(6,9,1,1).getValue() 
    + "</textarea>" 
    + "</BODY></HTML>"; 
    GmailApp.sendEmail("[email protected]", "subject","hi" , {htmlBody: htmlMsg}); 

примечание, как используются одиночные и двойные кавычки.

+0

Большое спасибо за помощь Майкл. Используя кавычки правильно, как в вашем примере, содержимое ячейки создается в электронном письме, но текст фактически не обертывается. Вы можете заметить ошибку в коде? –

+0

В тесте, которое я попробовал, текстовое поле было создано в электронном письме и завернуто, как ожидалось, с помощью приведенного выше кода. Когда вы спросите, можете ли вы заметить ошибку в холоде сейчас? на какой код вы ссылаетесь? У вас есть пробелы в вашем выходе, чтобы на выходе были точки перелома? – ScampMichael

+0

Я вижу, что вы отредактировали свой пост с новым кодом. есть проблема с последней строкой сообщения, в котором у вас есть HTML и body reverse. действительно ли вы видите текстовое поле в своем письме? – ScampMichael

0

Вот пример того, как вы можете использовать шаблоны для создания своих ответов электронной почты. Документацию можно найти здесь: 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("[email protected]", "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> 
+0

Привет Спенсер, большое спасибо за это. Я буду следовать вашему примеру, чтобы настроить шаблон, если я не могу заставить его работать в текущей строке. Большое спасибо. –

Смежные вопросы