javascript - 刷新或关闭电子表格时,菜单项消失
问题描述
我正在尝试创建一个脚本,该脚本将在 Google 表格中创建一个菜单项,以便在按下时发送电子邮件。当我在脚本编辑器上按运行时,菜单项将出现,但是当 Google Sheet 刷新或关闭时,菜单项消失。
我的代码原本可以工作,但由于某种原因不再工作。
function onOpen() {
var ss = SpreadsheetApp.openById("1j2Q58oxxcTS-QYmdvaEiNWgyRagqF17rv8o3tYWB1TQ");
var menu = [{name: "Submit", functionName:"myFunction"}];
ss.addMenu("Submit Booking", menu)
}
function myFunction() {
var source = SpreadsheetApp.openById("1j2Q58oxxcTS-QYmdvaEiNWgyRagqF17rv8o3tYWB1TQ");
var email = "removed for privacy reasons";
var subject = "New Buffel Park Travel Bookings";
var link = "https://docs.google.com/spreadsheets/d/1j2Q58oxxcTS-QYmdvaEiNWgyRagqF17rv8o3tYWB1TQ/edit#gid=1832370497";
var message = "New bookings have been submitted for Buffel Park site staff.";
var html_message = "<p>New bookings have been submitted for Buffel park site staff."+
"<p>"+
"<p>Booking details can be found <a href=\""+link+"\">here.</a>"+
"<p>"+
"<p>A PDF copy of the sheet at time of submission is also attached to this email.";
var pdf = DriveApp.getFileById(source.getId()).getAs('application/pdf').getBytes();
var attach = {fileName:'Buffel Park Travel Booking.pdf',content:pdf, mimeType:'application/pdf'};
MailApp.sendEmail (email, subject, message, {htmlBody: html_message,attachments:[attach]});
var cc = Session.getActiveUser().getEmail();
var sub = "New bookings have been submitted for Buffel Park site staff.";
var html = "<p>New bookings have been submitted for Buffel park site staff."+
"<p>"+
"<p>A PDF copy of the sheet at time of submission is also attached to this email.";
MailApp.sendEmail (cc, sub, message, {htmlBody: html,attachments:[attach]});
}
我只需要按钮保持原位,以便发送请求的电子邮件提示
解决方案
它消失是正常的行为,但是当您打开电子表格时,一旦脚本有一点时间运行,它应该会很快重新出现。
您的问题看起来是因为您正在按 ID 打开电子表格,我自己对此进行了测试,并且通过 ID 打开似乎不起作用,而使用 getActiveSpreadsheet() 可以:
function onOpen(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [{name: "Submit", functionName:"myFunction"}];
ss.addMenu("Submit Booking", menu);
}
推荐阅读
- php - 如何根据当前经过身份验证的用户动态设置 Laravel 配置?
- google-cloud-build - 使用 JFrog Artifactory 构建云
- sql - 一个 BIGQUERY 中的 2 个 SELECT 语句
- java - 为什么我们用于 pdfview 的依赖项会出现以下错误
- xslt - 第一个前面的兄弟姐妹
- android - Android Compose - 将传统视图与 ComposeView 结合使用
- javascript - 在第一个数组的每三个元素上组合对象数组
- python - 没有返回语句但不返回 None?
- php - 从嵌套字符串中提取 json 值的最佳方法是什么?
- jquery - 引导模型弹出窗口内的 DropDownList 在 asp.net core mvc 的编辑模式下不起作用