这种方法直到最近才有效,但现在只有在我更改代码或 GSheet 后才有效一次,但后续调用会出现服务器 500 错误。
我已经尝试了 URL 的所有组合,直到绝对最小值,并在遇到相同错误时在浏览器地址栏中运行生成的 URL。
代码基于
https://gist.github.com/Spencer-Easton/78f9867a691e549c9c70
var url = SpreadsheetApp.getActive().getUrl().replace(/\/edit.*$/, '')
url += '/export?exportFormat=pdf&format=pdf'
+ '&gid=' + sheetId
+ '&size=letter' // paper size
+ '&portrait=true' // orientation, false for landscape
+ '&fitw=true' // fit to width, false for actual size
+ '&sheetnames=false&printtitle=false&pagenumbers=false' //hide optional headers and footers
+ '&gridlines=false' // hide gridlines
var options = {
muteHttpExceptions: false,
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
}
// Throws 500 error on second call ...
var response = UrlFetchApp.fetch(url, options)
if (response.getResponseCode() !== 200) {
throw new Error(response.getContentText())
}
问题是我在导出之前隐藏了要导出的 GSheet 选项卡。