You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何点击下载后关闭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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:30:33