首先我要说我已经意识到这个问题已被提出过,所以真诚地道歉再次提出这个问题。但是,我已经尝试了一些建议并且无法解决问题。我正在尝试编写一个脚本,该脚本将采用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")
如果有人有任何想法,我将不胜感激。
答案 0 :(得分:0)
您显示的代码(未引用来源)适用于旧版电子表格。
它不适用于新版本。
阅读documentation on drive advanced service,您将找到所需的所有解释。
这篇文章应该有所帮助:OAuth error when exporting Sheet as XLS in Google Apps Script