首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Doc的脚本

Google Doc的脚本
EN

Stack Overflow用户
提问于 2016-05-11 19:24:58
回答 1查看 119关注 0票数 1

让我首先说,这是我第一次使用google脚本。

我有一个工作表函数,我通过搜索找到了一个函数,经过一点编辑就可以正常运行了。它根据菜单选择发送一封关于状态更新的电子邮件。我也希望它添加到一栏的标题为“电子邮件发送”(如果这重要的O栏),当电子邮件发送出去。

这是当前的脚本:

代码语言:javascript
复制
function getColIndexByName(colName) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var numColumns = sheet.getLastColumn();
  var row = sheet.getRange(1, 1, 1, numColumns).getValues();
  for (i in row[0]) {
    var name = row[0][i];
    if (name == colName) {
      return parseInt(i) + 1;
    }
  }
  return -1;
}

function emailStatusUpdates() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var row = sheet.getActiveRange().getRowIndex();
  var userEmail = sheet.getRange(row, getColIndexByName("email")).getValue();
  var subject = "Helpdesk Ticket #" + row;
  var body = "We've updated the status of your ticket.\n\nStatus: " + sheet.getRange(row, getColIndexByName("Status")).getValue();
  body += "\n\nNotes: " + sheet.getRange(row, getColIndexByName("Notes")).getValue();
  body += "\n\nResolution: " + sheet.getRange(row, getColIndexByName("Resolution")).getValue();

  MailApp.sendEmail(userEmail, subject, body, {name:"Help Desk"});
}

function onOpen() {
  var subMenus = [{name:"Send Status Email", functionName: "emailStatusUpdates"}];
  SpreadsheetApp.getActiveSpreadsheet().addMenu("Help Desk Menu", subMenus);
}​
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-11 19:41:33

这看起来很琐碎。您将在setValue函数中的某个范围上使用emailStatusUpdates方法。

代码语言:javascript
复制
var confirmText = "Email sent at " +
  Utilities.formatDate(new Date(), Session.getScriptTimeZone(),
                       "yyyy-MM-dd HH:mm:ss")
sheet.getRange(row, getColIndexByName("email date")).setValue(confirmText);

我使用您的函数getColIndexByName来避免代码中的硬编码列"O“。您必须确保O列的标题与我们传递给这个函数的内容相匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37171651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档