使用应用程序脚本从BLOB创建文件

时间:2013-03-08 15:09:24

标签: google-apps-script

我想从另一个文档生成的BLOB在Google云端硬盘中创建一个文档。 我试过这个简单的例子:

  var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/[My document]/edit");
  var docContentBlob = doc.getBlob();

  var newDocBlob = Utilities.newBlob(
    docContentBlob.getDataAsString(),
    "application/vnd.google-apps.document",
    "TEST DOC BLOB");

此脚本创建一个文档,但我无法打开它(当我尝试打开文档时它会显示“正在加载,请等待”,它永远不会打开。

为什么这个脚本不起作用?

2 个答案:

答案 0 :(得分:0)

不确定(正如Corey已经说过的)你想要做什么,但是当你有一个来自文档的blob(在这种情况下意味着一个Google文档)时你只能(至少我现在在考虑) )使用DocsList从该blob创建“新”的东西......它不是Google文档而是pdf文件!

如果您想获得doc的副本,只需使用docsList服务中的makeCopy。

这是一段代码,用以说明两种可能性:

function myFunction() {
  var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/[My document ID]/edit");
  var docContentBlob = doc.getBlob();
  var copyofDoc = DocsList.getFileById(doc.getId()).makeCopy('new copy of '+doc.getName());// this will create a copy (google doc format)
  var newDocfromBlob = DocsList.createFile(docContentBlob);// this will create a pdf version of your doc
}

答案 1 :(得分:0)

您需要设置文件的mime类型,以便Google知道如何显示/打开它。