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

如何通过Google Apps Script生成表格指定范围的PDF文件

直接指定Google表格范围生成PDF的解决方案

可以直接指定特定工作表或单元格范围生成PDF,无需隐藏其他工作表。核心是利用Google Sheets的导出URL参数精准控制导出内容,替代原方法中通过DriveApp导出整个表格的逻辑。

修改后的完整代码

function createPDF() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var targetSheet = ss.getSheetByName("Monitor"); // 要导出为PDF的目标工作表
  var pdfName = targetSheet.getRange("A1:A1").getValue(); // 获取PDF文件名
  var folderIter = DriveApp.getFoldersByName("2023"); // 目标存储文件夹
  var pdfFolder = folderIter.next();

  // 配置导出范围(按需修改)
  var sheetId = targetSheet.getSheetId();
  var exportRange = "A1:D20"; // 你需要导出的单元格范围

  // 构建带参数的PDF导出URL
  var url = "https://docs.google.com/spreadsheets/d/" + ss.getId() + "/export?" +
    "exportFormat=pdf&" +
    "format=pdf&" +
    "gid=" + sheetId + "&" + // 指定导出的工作表ID
    "range=" + exportRange + "&" + // 指定导出的单元格范围
    "size=A4&" + // 纸张大小
    "portrait=true&" + // 纵向排版
    "fitw=true&" + // 内容适配页面宽度
    "top_margin=0.75&" +
    "bottom_margin=0.75&" +
    "left_margin=0.7&" +
    "right_margin=0.7&" +
    "sheetnames=false&" +
    "printtitle=false&" +
    "pagenumbers=false&" +
    "gridlines=false&" +
    "fzr=false";

  // 携带权限令牌发起请求
  var token = ScriptApp.getOAuthToken();
  var response = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': 'Bearer ' + token
    }
  });

  // 生成PDF文件并保存到指定文件夹
  var pdfBlob = response.getBlob().setName(pdfName);
  pdfFolder.createFile(pdfBlob);
}

关键说明

  1. 精准导出控制:
    • 通过gid参数锁定目标工作表,无需隐藏其他工作表
    • 通过range参数指定具体单元格范围,仅导出需要的内容
  2. 参数自定义:
    可根据需求调整size(纸张尺寸)、portrait(横竖版)、gridlines(是否显示网格线)等参数,适配不同排版需求
  3. 避免状态冲突:
    无需调用hideSheet()和showSheet()修改工作表状态,减少多用户操作时的冲突风险

与原代码的核心差异

原代码通过DriveApp.getFileById().getAs(MimeType.PDF)导出整个表格,必须先隐藏无关工作表;新方法直接通过URL参数指定导出范围,一步生成目标PDF,流程更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:40:58