[英]Insert Emoji unicode from google sheets to an email using script editor
[英]Email a table from google sheets using app script - on click of a button
我是編碼新手。 這是我的第一個查詢。 請原諒我的錯誤。
我想開發一個簡單的代碼來接受客戶的訂單。 In the attached sheet - customers will select their products and a summary email should go to the customer's email id and the admin email id.
email 正在發送正確的主題行,但 email 正文不正確。
email 主體是 - [object Object] - 而不是帶有產品詳細信息的表格。
下面是代碼。 請幫忙。 提前致謝。
“工作表 - 訂單選項卡”
function orderemail() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sh.getRange("A2:O38").getValues();
//var htmltable =[];
var TABLEFORMAT = 'cellspacing="2" cellpadding="2" dir="ltr" border="1" style="width:100%;table-layout:fixed;font-size:10pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid #ccc;font-weight:normal;color:black;background-color:white;text-align:center;text-decoration:none;font-style:normal;'
var htmltable = '<table ' + TABLEFORMAT +' ">';
for (row = 0; row<data.length; row++){
htmltable += '<tr>';
for (col = 0 ;col<data[row].length; col++){
if (data[row][col] === "" || 0) {
htmltable += '<td>' + 'None' + '</td>';}
else if (row === 0) {
htmltable += '<th>' + data[row][col] + '</th>';
}
else {htmltable += '<td>' + data[row][col] + '</td>';}
}
htmltable += '</tr>';
}
htmltable += '</table>';
Logger.log(data);
Logger.log(htmltable);
var emailAddress = "chhedapriyank@gmail.com";
var emailAddress2location = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order tab").getRange("C25");
var emailAddress2 = emailAddress2location.getValues();
// Send Alert Email.
var order = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order tab").getRange("A2:K32");
var message = order.getValues();
var subject = 'New Order Alert';
var subject2 = 'Order Summary';
MailApp.sendEmail(emailAddress, subject, {htmlBody: htmltable})
MailApp.sendEmail(emailAddress2, subject2, {htmlBody: htmltable})
var reset = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order tab").getRange("b3:j22");
reset.clearContent();
var reset2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order tab").getRange("c25");
reset2.clearContent();
}
如果我很好理解文檔https://developers.google.com/apps-script/reference/mail/mail-app
您不必傳遞 object 作為 MailApp.sendEmail 的正文參數,而是直接傳遞您的 text/html
所以在這些行中用htmltable
替換{htmlBody: htmltable}
:
...
MailApp.sendEmail(emailAddress, subject, htmltable)
MailApp.sendEmail(emailAddress2, subject2, htmltable)
...
編輯
您需要在提供選項 object 之前提供文本正文,
sendEmail(收件人、主題、正文、選項)
你對語法是正確的,但你之前需要一個文本。 你可以試試這個來測試它:
...
MailApp.sendEmail(emailAddress, subject, htmltable, {htmlBody: htmltable})
MailApp.sendEmail(emailAddress2, subject2, htmltable,{htmlBody: htmltable})
...
但我建議您創建數據的文本版本,如果可行,將其作為文本正文傳遞
回答您的進一步問題(來自評論)
1 如果您不希望空白為“無”,則應刪除此部分
var htmltable = '<table ' + TABLEFORMAT +' ">';
for (row = 0; row<data.length; row++){
htmltable += '<tr>';
for (col = 0 ;col<data[row].length; col++){
//remove this part ------------
//if (data[row][col] === "" || 0) {
// htmltable += '<td>' + 'None' + '</td>';}
//else --------------
if (row === 0) {
htmltable += '<th>' + data[row][col] + '</th>';
}
else {htmltable += '<td>' + data[row][col] + '</td>';}
}
htmltable += '</tr>';
}
2 - 試試這個
...
// Send Alert Email.
var order = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order tab").getRange("A2:K32");
var message = order.getValues();
//---------------------- this :
var customerId = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName("Order tab").getRange("c24")
.getValues()[0];
var subject = 'New Order Alert - ' + customerId;
var subject2 = 'Order Summary - ' + customerId;
...
```
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.