使用应用程序脚本从谷歌表格通过电子邮件发送表格 - 单击按钮

我是编码新手。这是我的第一个查询。请原谅我的错误。


我想开发一个简单的代码来接受客户的订单。在附件中 - 客户将选择他们的产品,摘要电子邮件应发送至客户的电子邮件 ID 和管理员电子邮件 ID。


电子邮件的主题行正确,但电子邮件正文不正确。


电子邮件正文是 - [object Object] - 而不是包含产品详细信息的表格。


下面是代码。请帮忙。提前致谢。


https://docs.google.com/spreadsheets/d/1J4OHwN3MEJwqMhOMDWg2Mt6dgqjcVlGOc2bHOS5lmRY/edit#gid=1167211647


“工作表 - 订单选项卡”


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();


}


守候你守候我
浏览 220回答 2
2回答

largeQ

如果我理解文档https://developers.google.com/apps-script/reference/mail/mail-app您不必将对象作为MailApp.sendEmail的正文参数传递,而是直接传递您的 text/html所以在这些行中替换{htmlBody: htmltable}为htmltable:...&nbsp; &nbsp; &nbsp;MailApp.sendEmail(emailAddress, subject, htmltable)&nbsp; &nbsp; &nbsp;MailApp.sendEmail(emailAddress2, subject2, htmltable)...编辑您需要在提供选项对象之前提供文本正文,sendEmail(收件人、主题、正文、选项)你对语法是正确的,但你之前需要一个文本。你可以试试这个来测试它:...&nbsp; &nbsp; &nbsp;MailApp.sendEmail(emailAddress, subject, htmltable, {htmlBody: htmltable})&nbsp; &nbsp; &nbsp;MailApp.sendEmail(emailAddress2, subject2, htmltable,{htmlBody: htmltable})...但我建议您创建数据的文本版本,如果可行,将其作为文本正文传递

牧羊人nacy

回答您的进一步问题(来自评论)1 如果您不希望空白为“无”,则应删除此部分&nbsp; &nbsp; var htmltable = '<table ' + TABLEFORMAT +' ">';&nbsp; &nbsp; &nbsp; &nbsp; for (row = 0; row<data.length; row++){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;htmltable += '<tr>';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (col = 0 ;col<data[row].length; col++){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //remove this part ------------&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //if (data[row][col] === "" || 0) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; htmltable += '<td>' + 'None' + '</td>';}&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //else --------------&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (row === 0)&nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; htmltable += '<th>' + data[row][col] + '</th>';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else {htmltable += '<td>' + data[row][col] + '</td>';}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; htmltable += '</tr>';&nbsp; &nbsp; &nbsp;}2 - 试试这个...&nbsp; &nbsp; &nbsp;// Send Alert Email.&nbsp; &nbsp; &nbsp;var order = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Order tab").getRange("A2:K32");&nbsp; &nbsp; &nbsp;var message = order.getValues();&nbsp; &nbsp; &nbsp;//---------------------- this :&nbsp; &nbsp; &nbsp;var customerId = SpreadsheetApp.getActiveSpreadsheet()&nbsp; &nbsp; &nbsp; &nbsp;.getSheetByName("Order tab").getRange("c24")&nbsp; &nbsp; &nbsp; &nbsp;.getValues()[0];&nbsp; &nbsp; &nbsp;var subject = 'New Order Alert - ' + customerId;&nbsp; &nbsp; &nbsp;var subject2 = 'Order Summary - ' + customerId;...```
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript