可以返回Google Apps脚本blob,其内容类型设置为电子表格吗?

时间:2016-07-31 17:07:45

标签: google-apps-script google-sheets

作为我为我所工作的公司开发的一套工具的一部分,我在开发中添加了一个插件,在首次安装时会为该套件生成所有相关的文件和文件夹。

由于某些文件的复杂性,我发现使用以下代码是生成文件的最快方法:

function createTemplate(branchId){
var home=DriveApp.getFolderById(branchId)
var master=DriveApp.getFileById(stringId).getBlob();
home.createFile(master);
}

然而,我遇到的问题是,所有文件都是以PDF格式生成的。我知道这是因为默认的blob内容类型是PDF文件类型,getAs(contentType)可用于指定所需的blob内容类型;但是我很难找到任何文档来指定如何将内容类型称为电子表格。例如。

这是否可行,我在Google的文档中错过了如何将内容类型指定为电子表格,或者它是不可能的,并且只能使用PDF或图像类型的内容类型返回blob?< / p>

更新:因此我意外地发现电子表格的内容类型似乎由application/vnd.google-apps.spreadsheet指定但是,我现在收到错误Converting from application/pdf to application/vnd.google-apps.spreadsheet is not supported.

进一步更新:使用以下脚本找到使用不同路线的潜在解决方案:

function createTemplate(branchId){
var home=DriveApp.getFolderById(branchId);
var master=DriveApp.getFileById("fileId").makeCopy("PP Template", home);
}

虽然这大约有8秒的运行时间,但这并不是世界上最快的事情。 Blob相关的答案仍然受到欢迎。

1 个答案:

答案 0 :(得分:0)

据我所知,blob目前不会做你想做的事。存在DocumentApp.create等的原因。它们是Google希望您为要执​​行的操作调用的函数。他们不想要13种方法来执行相同的功能。