通过Google电子表格我想发送附件。附件是Google Doc。
我可以将其作为PDF文件发送.getAs('application / PDF') - 但我需要它作为Word文档(或在Word中打开的东西)。
可以手动发送电子邮件作为Word附件,但此解决方案需要自动执行此操作。
我试过:application / vnd.openxmlformats-officedocument.wordprocessingml.document(http://en.wikipedia.org/wiki/Internet_media_type)但这不起作用。
亲切的问候
的Stefan
答案 0 :(得分:2)
Google Apps脚本无法导出除pdf本地以外的任何内容,但文档API会这样做,您可以使用带参数的urlFetch来获取所需内容(不要更改这些参数,请求是匿名的,可以保留)。
这是代码,它不需要太多解释,除了必须授权urlFetch(该过程不是通常的,你将获得该脚本的第二个授权。)
function emailDocTestasDocx() {
var id = '1I9KIVTLieQbNnmz09zfOBSBNwZ9Tp7B0kfpysaf-ooY';// an example of Google doc
var url = 'https://docs.google.com/feeds/';
var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=doc&format=doc&id='+id,
googleOAuth_('docs',url)).getBlob();
var me = Session.getEffectiveUser().getEmail();
MailApp.sendEmail(me, 'test', 'see attachment', {attachments:[doc]});
}
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"};
}