我正在使用Google Apps脚本将Google电子表格导出为PDF格式,并希望在PDF页面上“包含工作表名称”。这可以通过代码实现吗?
var spreadsheetFile = DocsList.getFileById(spreadsheet_id);
var blob = spreadsheetFile.getAs('application/pdf');
blob.setName(spreadsheetFile.getName());
DocsList.getFolder(file_destination).createFile(blob);
在电子表格应用程序中,它在UI中受支持,所以我想知道Apps Scripts是否也支持这个?
答案 0 :(得分:3)
.getAs()
方法不允许参数,但您可以使用电子表格api,您可以在其中选择“普通”Ui中的所有可用参数。
请参阅此post answer以了解如何使用它,并按照github link
这是演示代码,因为ref中的代码有一些不一致。 (仅举例说明使用网格和标题导出sheet1)
请注意,这将要求2个不同的授权。
function test(){
var key = "0AnqSFd3iikE3dFd1WEVhMFhYczM5VWpuNDZHQ3AwZEE";
var pdf = spreadsheetToPDF(key);
DocsList.createFile(pdf);
}
function spreadsheetToPDF(key) {
var oauthConfig = UrlFetchApp.addOAuthService("spreadsheets");
var scope = "https://spreadsheets.google.com/feeds"
oauthConfig.setConsumerKey("anonymous");
oauthConfig.setConsumerSecret("anonymous");
oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken");
oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
var requestData = {
"oAuthServiceName": "spreadsheets",
"oAuthUseToken": "always",
};
var name = DocsList.getFileById(key).getName()+".pdf";
var pdf = UrlFetchApp.fetch("https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key="+key+
"&exportFormat=pdf&gid=0&gridlines=true&printtitle=true&size=A4&sheetnames=true&fzr=true&portrait=true&fitw=true", requestData).getBlob().setName(name);
return pdf;
}
/*
fmcmd=12
size=legal/A4
fzr=true/false
portrait=false/true
fitw=true/false
gid=0/1/2
gridlines=false/true
printtitle=false/true
sheetnames=false/true
pagenum=UNDEFINED
attachment=false/true
*/