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

使用Apps Script自动将Google Sheets指定工作表导出为PDF至云端硬盘

解决方案

1. 修改脚本实现自动保存到云端硬盘

以下脚本可批量隐藏指定工作表,自动将所有可见工作表导出为PDF并保存到Google云端硬盘,全程无需手动交互:

function exportSheetsToDrivePDF() {
  // 配置参数
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheetsToHide = ["test2", "sheet3", "sheet4", "sheet5"]; // 替换为你要隐藏的4个工作表名称
  const folderId = "你的云端硬盘文件夹ID"; // 替换为目标文件夹ID,留空则保存到根目录
  const pdfBaseName = ss.getName(); // PDF文件名前缀

  // 批量隐藏指定工作表
  sheetsToHide.forEach(sheetName => {
    const sheet = ss.getSheetByName(sheetName);
    if (sheet) sheet.hideSheet();
  });

  // --- 选项1:每个可见工作表单独导出为PDF ---
  const visibleSheets = ss.getSheets().filter(sheet => !sheet.isSheetHidden());
  visibleSheets.forEach(sheet => {
    const sheetId = sheet.getSheetId();
    const pdfName = `${pdfBaseName}_${sheet.getName()}.pdf`;
    
    // 构造导出URL
    const url = `https://docs.google.com/spreadsheets/d/${ss.getId()}/export?exportFormat=pdf&gid=${sheetId}&access_token=${ScriptApp.getOAuthToken()}`;
    
    // 获取PDF内容并保存到云端硬盘
    const response = UrlFetchApp.fetch(url, { headers: { Authorization: `Bearer ${ScriptApp.getOAuthToken()}` } });
    const pdfBlob = response.getBlob().setName(pdfName);
    
    if (folderId) {
      DriveApp.getFolderById(folderId).createFile(pdfBlob);
    } else {
      DriveApp.createFile(pdfBlob);
    }
  });

  // --- 选项2:所有可见工作表合并为单个PDF(替换选项1的代码即可)---
  // const pdfName = `${pdfBaseName}_所有可见工作表.pdf`;
  // const url = `https://docs.google.com/spreadsheets/d/${ss.getId()}/export?exportFormat=pdf&access_token=${ScriptApp.getOAuthToken()}`;
  // const response = UrlFetchApp.fetch(url, { headers: { Authorization: `Bearer ${ScriptApp.getOAuthToken()}` } });
  // const pdfBlob = response.getBlob().setName(pdfName);
  // if (folderId) {
  //   DriveApp.getFolderById(folderId).createFile(pdfBlob);
  // } else {
  //   DriveApp.createFile(pdfBlob);
  // }

  // 可选:导出后恢复隐藏的工作表(保持原表格显示状态)
  sheetsToHide.forEach(sheetName => {
    const sheet = ss.getSheetByName(sheetName);
    if (sheet) sheet.showSheet();
  });
}

脚本说明

  • 批量隐藏:通过sheetsToHide数组一次性指定需隐藏的工作表,无需重复调用函数
  • 云端保存:使用UrlFetchApp获取PDF数据,再通过DriveApp直接保存到指定文件夹
  • 恢复工作表:最后一段代码可恢复隐藏的工作表,避免修改原表格的显示状态
  • 双选项支持:根据需求选择「单工作表单独导出」或「多工作表合并导出」

2. 设置自动触发(无需手动运行)

  1. 打开Google Sheets,点击「扩展程序」→「Apps脚本」
  2. 在脚本编辑器左侧点击「触发器」图标(闹钟形状)
  3. 点击「添加触发器」,配置以下参数:
    • 选择运行函数:exportSheetsToDrivePDF
    • 部署类型:「基于时间的触发器」
    • 时间驱动类型:按需选择(如「每天」「每周」或特定时间点)
    • 配置具体时间后点击「保存」

3. 权限说明

首次运行脚本或设置触发器时,需授权脚本访问你的Google Sheets和云端硬盘权限,按提示完成授权即可。

内容的提问来源于stack exchange,提问作者WeyldFalcon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:45:07