2

m in the process of creating a custom timesheet using Google Docs and Google Apps Script. One of the requirements is to save the timsheet as a PDF when the user submits the timesheet. Hereは現在持っているものです:

function createPdf(){

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var oauthConfig = UrlFetchApp.addOAuthService("google");
  oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope=https://spreadsheets.google.com/feeds/");
  oauthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oauthConfig.setConsumerKey("anonymous");
  oauthConfig.setConsumerSecret("anonymous");

  var url =  "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key="
      + ss.getId() +  "&gid=0&portrait=true" +"&exportFormat=pdf";

  var requestData = {
    "oAuthServiceName": "google",
    "oAuthUseToken": "always"
  };

  var result = UrlFetchApp.fetch(url, requestData);
  var content = result.getBlob();
  var file = DocsList.createFile(content);

  return file;

}

スクリプトをデバッグすると、次のエラーが発生します。

継続をシリアル化する際の予期しない例外

どんな助けでもいただければ幸いです。

4

1 に答える 1

3

さらに掘り下げた後、私はこの解決策を見つけました:

function createPdf(){

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var pdf = ss.getAs("application/pdf");
  var file = DocsList.createFile(pdf);
  file.rename("Test");

  return file;

}
于 2011-09-29T05:19:39.090 に答える