使用Google Apps脚本将Google电子表格导出为PDF时包括图表名称 [英] Include sheet names when exporting Google Spreadsheets to PDF with Google Apps Scripts

查看:129
本文介绍了使用Google Apps脚本将Google电子表格导出为PDF时包括图表名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用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);

在电子表格应用程序中,它受用户界面支持,所以我想知道Apps脚本是否也支持?

解决方案 .getAs()方法不允许使用参数,但您可以使用电子表格api,您可以在其中选择所有可用的参数正常用户。
请参阅发布答案,看看如何使用它,并按照 github链接



以下是演示代码,因为代码中存在一些不一致的地方。 (只是用导出带有网格和标题的sheet1的示例来说明)

注意这将要求2个不同的授权。

  function test(){
var key =0AnqSFd3iikE3dFd1WEVhMFhYczM5VWpuNDZHQ3AwZEE;
var pdf = spreadsheetToPDF(key);
DocsList.createFile(pdf);


函数spreadsheetToPDF(键){

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=+范围);
oauthConfig.setAuthorizationUrl(https://accounts.google.com/OAuthAuthorizeToken);
oauthConfig.setAccessTokenUrl(https://www.google.com/accounts/OAuthGetAccessToken);
$ b $ 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;

$ b $ * b $ b 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
* /


I am exporting a Google Spreadsheet to PDF format with Google Apps Script, and would like to 'include sheet names' on the PDF pages. Is this possible to do this from the code?

var spreadsheetFile = DocsList.getFileById(spreadsheet_id);
var blob = spreadsheetFile.getAs('application/pdf'); 
blob.setName(spreadsheetFile.getName());
DocsList.getFolder(file_destination).createFile(blob); 

In the Spreadsheet app it is supported in the UI, so I am wondering whether Apps Scripts supports this too?

解决方案

The .getAs() method does not allow for parameters but you can use the spreadsheet api where you can choose all the parameters available from the "normal" Ui. See this post answer to see how to use it, and follow the github link

Here is the demo code as there were a few inconsistencies in the code in ref. (just to illustrate with an example exporting sheet1 with grid and title)

note this will ask for 2 distinct authorizations.

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  
*/

这篇关于使用Google Apps脚本将Google电子表格导出为PDF时包括图表名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆