【问题标题】:Google Sheets to send email with text of cell that is entered谷歌表格发送带有输入单元格文本的电子邮件
【发布时间】:2018-03-04 19:06:56
【问题描述】:

在电子表格中,J 列包含请求取货的公司名称。我想要的是要求取件的公司名称是电子邮件正文。例如,这将输入到单元格 J10 中。

在输入公司名称时只需发送一次。我已将脚本设置为运行“onEdit”。

以下是我目前所拥有的,如您所见,问题在于第 14 行 - var body

/* This function send an email when a specified range is edited
 * The spreadsheets triggers must be set to onEdit for the function
 */
function sendNotification() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  // Get Active cell
  var mycell = ss.getActiveSelection();
  var cellcol = mycell.getColumn();
  var cellrow = mycell.getRow();
  // Define Notification Details
  var recipients = "emailaddressn@domain.com";
  var subject = "Pickup Entered";
  var body = ss.getActiveSelection() + " has a pickup.";
  if (cellcol == 10) {
    // Send the Email
    MailApp.sendEmail(recipients, subject, body);
  }
} // End sendNotification

因此,最终司机会收到一封来自 Google 表格的电子邮件,主题为“Pickup Entered”,邮件正文为“Company ABC has apickup”。

更新:我找到了一个类似的脚本并对其进行了修改以适应它。这完全符合我的要求:

function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
if(sheet.getName()=='Sheet1'){
var cell = ss.getActiveCell();
var cellcol = cell.getColumn();
if(cellcol == 10){
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = "emailaddress@domain.com";
var subject = 'Pickup Requested '+cellvalue;
var body = 'A new Pickup has been placed for ' + cellvalue + '. Please 
coordinate with dispatch.';
MailApp.sendEmail(recipients, subject, body);}
}
} 

谢谢

【问题讨论】:

  • 欢迎来到 Stack Overflow! Stack Overflow 不是一个讨论论坛,它是一个问答网站,您可以在其中提出可以回答而不是讨论的特定编程问题。请阅读How do I ask a good question?What topics can I ask about here?,然后编辑您的问题以符合站点指南。诸如此类的离题问题通常会关闭,但如果经过编辑以提出可回答问题,则可以再次重新打开。谢谢。

标签: google-apps-script google-sheets


【解决方案1】:

您需要先将范围转换为 HTML 表格。

注意事项:

  • 请参阅this answer,了解如何从范围中获取 HTML。
  • 对活动范围使用正确的语法:SpreadsheetApp.getActiveRange()
  • 当您希望发送活动范围时,该功能将从custom menu 正常工作。

获取菜单的示例代码:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Send selection', 'sendNotification')
      .addToUi();
}

【讨论】:

    猜你喜欢
    • 2021-01-07
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多