【发布时间】:2020-05-14 22:59:50
【问题描述】:
我将尝试解释这种情况,以便您更好地理解我的问题。我有一个包含 3 张表格的电子表格:第一张包含表格中的答案,第二张包含第二张表格中的答案,第三张是一张表格,它通过 ARRAYFORMULA 从第一张和第二张表格中收集数据,它是行。我使用“OnSubmit”触发器允许电子表格从第三张表中获取数据并将它们放在第四张表上的某个特定单元格中,然后允许我以 PDF 格式下载第四张表。问题是该脚本仅在我从编辑器中尝试时才有效,但当我提交表单时它不起作用。 “OnSubmit”触发器报告此错误“异常:无法从此上下文调用 SpreadsheetApp.getUi()”。有没有办法解决?谢谢
function downloadSheetAsPDF() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetId = ss.getSheetByName("DDT").getSheetId();
var url = "https://docs.google.com/a/mydomain.org/spreadsheets/d/" + ss.getId() + "/export?exportFormat=pdf&gid=" + sheetId + "&access_token=" + ScriptApp.getOAuthToken();
var str = '<input type="button" value="Download" onClick="location.href=\'' + url + '\'" >';
var html = HtmlService.createHtmlOutput(str);
SpreadsheetApp.getUi().showModalDialog(html, "Download PDF");
} ```
【问题讨论】:
-
请贴出代码,以便我们更好地理解问题。
-
没有看到代码,我不明白你为什么要使用 .getUi() 这个?它可能需要删除。
-
当触发器运行函数时,电子表格不会打开用户界面。它只是打开服务器上的电子表格,因此没有可用的用户界面,并且不允许您在该上下文中使用它们。
-
那我该如何解决?
-
您可以创建 pdf 并将其作为电子邮件附件发送
标签: google-apps-script google-sheets google-sheets-formula google-forms