1

我正在尝试使用此代码将 Google 电子表格复制到特定文件夹中

var targetFolder = DocsList.createFolder("Testing");
var mainDocBlob = DocsList.getFileById("docId").getBlob();
var newMainDoc = targetFolder.createFile(mainDocBlob);

但生成的文件是 Pdf 文件,而不是源文件中的电子表格。

如何使用 DocsList 正确执行此操作并始终获得与源相同类型的文件。

谢谢

4

4 回答 4

5

DriveApp 服务于 2013 年 8 月 20 日更新,使用新方法File.makeCopy(destination)File.makeCopy(name, destination)允许脚本指定应将文件复制到的文件夹。

于 2013-08-27T03:55:57.663 回答
4

正如其他帖子回答中提到的那样,谷歌文档不是常识中的“文件”,没有必要使用 getBlob 来复制它们,因为它们实际上没有 Blob ...(而且它们实际上没有出于同样的原因,“大小”也不使用 Gdrive 中的空间!)

相反,您应该使用(如大卫的回答中所述)addToFolder()

从此时起,您的文件将被移动到相应的文件夹中。如果您需要在您的根文件夹中有一个副本,然后制作一个副本,但取决于您访问文件的方式,这并不总是必要的,因为您始终可以使用“所有项目”浏览您的 Google 驱动器,您可以在其中看到所有项目相应的文件夹(以及它们所属的文件夹的名称)。

如果该文件已经在一个文件夹中,那么它将显示为属于这两个文件夹,您可以再次选择保持原样或使用 将其从原始文件夹中删除removeFromFolder()

我知道这与其他答案似乎有点多余,但我只是希望它能让谷歌驱动器的组织更加清晰。

于 2012-11-11T09:29:30.973 回答
2

我建议使用 文件makeCopy() 创建副本;addToFolder() 将其放入目标文件夹;和 removeFromFolder()

于 2012-11-11T03:55:40.267 回答
2

下面是应该工作的代码。我猜你什么时候得到一个 blob it.s 默认将新文件转换为 pdf。在下面的代码中,makeCopy 默认将新文件名设为“...的副本”,但这可以通过字符串设置

var targetFolder = DocsList.createFolder("Testing");
var mainDoc = DocsList.getFileById("docId");
mainDoc.makeCopy().addToFolder(targetFolder);
于 2012-11-11T09:04:45.043 回答