我是Google Scripts的新手,所以请耐心等待。我在Google Script中构建了一个用户界面,可以在请求的几天内关闭用户输入,将信息存储在电子表格中并向主管发送电子邮件。目前,我正在将消息构建为一系列字符串,并通过电子邮件发送给主管。没问题。
我被要求允许主管回应请求(即批准或拒绝请求的链接或按钮)。响应应该保存在与原始请求相同的电子表格中,并且在批准的情况下,还应该访问第二个电子表格并更新员工应计小时数。
我的问题是,如何使用脚本完成此操作?我是否需要通过电子邮件发送自定义的Google表单而不是当前的短信,或者是否有办法通过Google Script执行此操作? (我之前没有使用过Google表单,因此不确定它的行为方式或者我当前项目的功能。)我已经研究了一个多星期,并且空白了。如果有人可以指导我阅读某些文档或有任何见解,我会非常感激!
谢谢!
答案 0 :(得分:1)
我被要求允许主管回应请求(即批准或拒绝请求的链接或按钮)。
创建链接时,请在此网址上添加其他参数,其中包含employeeID,spreadsheetId和requestStatus等信息。其中一个网址可能如下所示:
https://script.google.com/macros/s/AKfycbwzwN5u3glvml0P1KoU5Q8snwwpvyGErikt_LPsvUn0hqznzC8/exec?id=201&ssId=1i6rFIliaIXjCWI7hkOkwlm_QBfY4ZiIf-Bbpscc6S2E&status=ACCEPTED
遵循此网址将导致您运行代码的单独的webapp:
function doGet(request) {
Logger.log(request.parameters.id);
var sheet = SpreadsheetApp.openById(request.parameters.ssId).getActiveSheet();
var data = sheet.getDataRange().getValues();
var user = request.parameters.id;
var status = request.parameters.status;
for (var i=1; i<data.length; i++) {
if (data[i][0] == user[0]){
sheet.getRange(i+1, 3,1,1).setValue(status[0]);
}
}
var result = "Congratulations! You just said '" + status[0] + "' to " + user + ".";
return ContentService.createTextOutput(result);
}
此doGet()
函数会读取网址的参数,然后使用其他参数数据更新带有来自网址参数id
的ID的电子表格。