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

Google Apps Script导出PDF参数配置报错:如何添加页面参数

解决Google Sheets导出指定范围PDF时添加页面参数的400错误

问题分析

添加页面尺寸、横向等参数后出现400错误,核心原因是URL参数拼接格式不规范,或参数组合未遵循Google Sheets导出接口的规则。

修改后的代码

以下代码保留指定范围导出功能的同时,正确集成所需页面参数:

function myFunction() {
  const cc = ""; // 填写抄送地址
  const bcc = ""; // 填写密送地址

  // 获取表格和工作表对象
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("Sheet1");

  // 构造包含所有导出参数的URL
  const exportParams = [
    "format=pdf",
    `range=A1:I5`,
    `gid=${sheet.getSheetId()}`,
    "size=0", // 页面尺寸:A4
    "fzr=true", // 重复冻结行
    "portrait=false", // 横向排版
    "fitw=true", // 适应页面宽度
    "gridlines=false", // 隐藏网格线
    "printtitle=true", // 打印标题
    "sheetnames=true", // 显示工作表名称
    "pagenum=CENTER", // 页码居中
    "attachment=true" // 作为附件下载
  ].join("&");
  
  const url = `https://docs.google.com/spreadsheets/d/${ss.getId()}/export?${exportParams}`;
  
  // 获取PDF Blob,开启调试模式查看完整错误
  const response = UrlFetchApp.fetch(url, { 
    headers: { authorization: "Bearer " + ScriptApp.getOAuthToken() },
    muteHttpExceptions: true // 调试完成后可移除该参数
  });
  
  // 调试:检查响应状态,打印错误内容
  if (response.getResponseCode() !== 200) {
    Logger.log("错误响应详情:" + response.getContentText());
    return;
  }
  
  const pdfBlob = response.getBlob().setName("指定范围表格导出.pdf"); // 为PDF设置文件名

  // 获取收件人邮箱并发送邮件
  const email = sheet.getRange("K2").getValue();
  MailApp.sendEmail({
    to: email,
    cc: cc || null,
    bcc: bcc || null,
    subject: "指定范围表格PDF导出",
    body: "附件是您需要的指定范围表格PDF文件。",
    attachments: [pdfBlob],
  });

  // DriveApp.getFiles() // 保留该行用于自动获取Drive只读权限,确保导出功能正常
}

关键优化点

  • 用数组拼接参数后统一转成URL字符串,避免手动拼接时出现多余符号或格式错误
  • 新增muteHttpExceptions: true,调试时可查看完整错误响应,快速定位参数问题
  • 为导出的PDF设置明确文件名,提升收件人识别效率
  • 完整保留原有的指定范围导出逻辑(range=A1:I5)

调试建议

如果仍报错,查看日志中的完整错误响应,检查参数拼写是否正确(比如布尔值必须为小写true/false),同时确认脚本已获取Drive只读权限和邮件发送权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:23:13