使用脚本将Google电子表格转换为Excel XLS

时间:2014-09-10 19:42:37

标签: excel google-apps-script google-apps

首先我要说我已经意识到这个问题已被提出过,所以真诚地道歉再次提出这个问题。但是,我已经尝试了一些建议并且无法解决问题。我正在尝试编写一个脚本,该脚本将采用Google电子表格,将其转换为Excel XLS / XLSX格式,然后将转换后的文件作为附件发送电子邮件。这是尝试创建转换文件的编码。

function googleOAuth_(name,scope) {
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey('anonymous');
  oAuthConfig.setConsumerSecret('anonymous');
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}

function test(){
var id = DocsList.getFileById('FILE_ID_HERE');
var url = 'https://docs.google.com/feeds/';
var doc = UrlFetchApp.fetch(url+'download/spreadsheets/Export?key='+id+'&exportFormat=xls',
googleOAuth_('docs',url)).getBlob()
DocsList.createFile(doc).rename('newfile.xls')
}

function autorise(){
  // function to call to authorize googleOauth
  var id = SpreadsheetApp.getActiveSpreadsheet().getId()
  var url = 'docs.google.com/feeds/';
  var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=html&format=html&id='+id, googleOAuth_('docs',url)).getContentText();
}

我读过授权程序是罪魁祸首。我已经授权,它似乎运行到下面的行,然后是错误。

var doc = UrlFetchApp.fetch(url+'download/spreadsheets/Export?key='+id+'&exportFormat=xls',
googleOAuth_('docs',url)).getBlob()

错误消息指出以下内容:

Request failed for returned code 404. Truncated server response: 
<!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word
processing, presentations and spreadsheets"><link rel="shortcut ic... 
(use muteHttpExceptions option to examine full response) (line 50, file "Code")

如果有人有任何想法,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您显示的代码(未引用来源)适用于旧版电子表格。

它不适用于新版本。

阅读documentation on drive advanced service,您将找到所需的所有解释。

这篇文章应该有所帮助:OAuth error when exporting Sheet as XLS in Google Apps Script