如何修复错误 - 无效参数:file.contentType,在创建新的 Google 表格时

Pcu*_*cud 1 google-sheets google-apps-script

我正在尝试在创建的文件夹中创建一个新的 Google 表格,但内容类型有问题。

我已经搜索了这个错误,但没有找到任何东西。大多数搜索都会出现MimeType错误,但我认为这不是问题所在。下面是我正在使用的代码:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var newFolder = DriveApp.getFolderById("MyID").createFolder("New Folder");
newFolder.createFile("myFileName",ss,MimeType.GOOGLE_DOCS);
Run Code Online (Sandbox Code Playgroud)

每当我在电子表格中运行它时,都会收到以下错误:

无效参数:file.contentType(第 3 行,文件“代码”)

我曾尝试使用“”作为createFile.

Tan*_*ike 5

下面的示例怎么样?我也不能使用 GOOGLE_SHEETS 和 GOOGLE_DOCS 的 MimeType。我不知道为什么。所以我建议使用SpreadsheetApp.create()。流程如下。

  1. 使用 SpreadsheetApp.create() 创建电子表格。

  2. 将目标文件夹信息添加到电子表格。

  3. 从电子表格中删除原始文件夹信息。

通过这种方式,您可以将电子表格创建到您想要的文件夹中。

脚本:

var sheetfile = "myFileName";
var destfolder = "MyID";
var sheet = SpreadsheetApp.create(sheetfile);
var file = DriveApp.getFileById(sheet.getId());
var destfolder = DriveApp.getFolderById(destfolder).addFile(file);
var docfile = file.getParents().next().removeFile(file);
Run Code Online (Sandbox Code Playgroud)

更新时间:2020 年 11 月 25 日

2020年7月27日,moveTo(destination)增加了方法。而且,方法addFileremoveFile将被弃用。Ref所以,当moveTo(destination)上面的脚本使用的方法时,就变成了下面这样。

var sheetfile = "myFileName";
var destfolder = "MyID";
var sheet = SpreadsheetApp.create(sheetfile);
var file = DriveApp.getFileById(sheet.getId());
var destfolder = DriveApp.getFolderById(destfolder);
var docfile = file.moveTo(destfolder);
Run Code Online (Sandbox Code Playgroud)
  • 当使用Drive API的Files:insert方法时,也可以使用下面的脚本。参考

      var sheetfile = "myFileName";
      var destfolder = "MyID";
      Drive.Files.insert({title: sheetfile, mimeType: MimeType.GOOGLE_SHEETS, parents: [{id: destfolder}]});
    
    Run Code Online (Sandbox Code Playgroud)