如何点击下载后关闭PDF下载弹窗并隐藏当前工作表?
解决方案
要实现点击下载按钮后关闭弹窗并隐藏当前工作表,你需要修改原脚本,在客户端触发下载后关闭弹窗,再调用服务器端函数完成工作表隐藏操作,具体代码如下:
function PDF() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheetId = ss.getActiveSheet().getSheetId(); var url = "https://docs.google.com/a/mydomain.org/spreadsheets/d/" + ss.getId() + "/export?exportFormat=pdf&gid=" + sheetId + "&access_token=" + ScriptApp.getOAuthToken(); // 修改HTML内容,添加点击后的多步逻辑 var str = ` <input type="button" value="Download" onClick="handleDownload('${url}')" > <script> function handleDownload(downloadUrl) { // 触发PDF下载 window.open(downloadUrl, '_blank'); // 关闭弹窗 google.script.host.close(); // 调用服务器端函数隐藏当前工作表 google.script.run.hideActiveSheet(); } </script> `; var html = HtmlService.createHtmlOutput(str); SpreadsheetApp.getUi().showModalDialog(html, "scarica il documento in pdf"); } // 新增服务器端函数:隐藏当前活动工作表 function hideActiveSheet() { var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.getActiveSheet().hideSheet(); }
关键修改说明:
- 给按钮绑定自定义
handleDownload函数,替代直接跳转逻辑 - 用
window.open触发PDF下载,避免跳转导致后续代码无法执行 - 调用
google.script.host.close()关闭弹窗 - 通过
google.script.run调用新增的hideActiveSheet函数,在服务器端完成工作表隐藏操作
内容的提问来源于stack exchange,提问作者Luca Telleschi
相关产品推荐
相关产品推荐

