【问题标题】:Exception: The parameters (String,DriveApp.File) don't match the method signature for DriveApp.File.makeCopy例外:参数 (String,DriveApp.File) 与 DriveApp.File.makeCopy 的方法签名不匹配
【发布时间】:2020-09-19 20:05:49
【问题描述】:

我是 Script 新手,想知道是否可以就问题获得帮助。我目前正在尝试从 Google 表单提交中自动填写 Google 文档。我在过去的一个小测试中取得了成功,但是自从用更大的形式再次尝试它之后,我遇到了这个错误:

“异常:参数 (String,DriveApp.File) 与 DriveApp.File.makeCopy 的方法签名不匹配”

我并不清楚这告诉我什么。我所知道的是,我没有做任何与上次小规模测试不同的事情,所以我正在运行的脚本表面上看起来很可靠,所以我希望有人能帮助我指出问题所在。这是脚本:

function autoFillFormFromDoc(e) {

  var clientCode = e.values[1];

  var email = e.values[2];

  var warningSigns = e.values[3];

  var internalCopingStrategies = e.values[4];

  var peopleAndSocial = e.values[5];

  var peopleWhoCare = e.values[6];

  var creatingSafety = e.values[7];

  var clientName = e.values[8];

  var date = e.values[9];
  
  var templateFile = DriveApp.getFileById("1Vs8y3eZbyBlef8HlV7v9nhSRvaH39Cg5P0Q5zhpZBA");
  var templateResponseFolder = DriveApp.getFileById("1OxsOwU6rAvohqRqDVOfH_f70kvu30HZp");
  
  var copy = templateFile.makeCopy(clientName, templateResponseFolder);
  
  var doc = DocumentApp.openById(copy.getId());
  
  var body = doc.getBody();
  
  body.replaceText("{{ClientCode}}", clientCode);
  
  body.replaceText("{{Email}}", email);

  body.replaceText("{{WarningSigns}}", warningSigns);

  body.replaceText("{{InternalCopingStrategies}}", internalCopingStrategies);

  body.replaceText("{{PeopleAndSocial}}", peopleAndSocial);

  body.replaceText("{{PeopleWhoCare}}", peopleWhoCare);

  body.replaceText("{{CreatingSafety}}", creatingSafety);

  body.replaceText("{{ClientName}}", clientName);

  body.replaceText("{{Date}}", date);
  
  doc.saveAndClose();
  
}

【问题讨论】:

    标签: javascript google-apps-script methods parameters google-drive-api


    【解决方案1】:

    问题:

    File.makeCopy(name, destination) 需要两个参数

    • name 类型为 string
    • destination 类型为 folder

    脚本调用destination,类型为file。因此它出错了

    参数 (String,DriveApp.File) 与 DriveApp.File.makeCopy 的方法签名不匹配

    解决方案:

    获取folder 而不是file

    var templateResponseFolder = DriveApp.getFolderById("[FOLDER_ID]");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多