首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >复制文件后获取文档的URL/ID

复制文件后获取文档的URL/ID
EN

Stack Overflow用户
提问于 2016-12-10 09:32:02
回答 1查看 2.4K关注 0票数 3

我正在尝试在复制完成后更新新复制的文档,将其添加到不同的文件夹并删除其根文件。Google脚本无法找到新复制的文件。错误在代码的下半部分,用星号用TypeError括起来。

我怀疑这与var doc = DocumentApp.getActiveDocument();的路线有关。我不确定如何获取新复制的文档(file2Date - Weekly Agenda)的URL。

代码语言:javascript
复制
  function copyupdateWeeklyAgenda() {
  var file = DriveApp.getFileById("FILEKEY");
  var source_folder = DriveApp.getFolderById("FOLDERKEY");
  var dest_folder = DriveApp.getFolderById("FOLDERKEY");
  // Make a backup copy.
  var file2 = file.makeCopy('Date - Weekly Agenda');
  dest_folder.addFile(file2);
  source_folder.removeFile(file2);

//START Update Weekly Agenda Data ---
  var ssUrl = 'https://whydoyouwanttoknow.com';
  var sheetName = 'Sheet1';   // name of sheet to use
  var rangeName = 'A1:B2';    // range of values to include 
  var values = SpreadsheetApp.openByUrl(ssUrl)
                             .getSheetByName(sheetName)
                             .getRange(rangeName)
                             .getValues();
  var doc = DocumentApp.getActiveDocument();
  **var body = doc.getBody();** <--- TYPEERROR: Cannot call method "getBody" of null.
  var ranges = doc.getNamedRanges('embeddedSheet-range');
  if (ranges.length == 0) {
    var table = body.appendTable(values);
  ...ETC.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-10 12:04:58

您的file2变量是File类的对象,因为这是File#makeCopy返回的内容。要获取相应的Document,请使用

代码语言:javascript
复制
var doc = DocumentApp.openById(file2.getId());

备注

  1. 方法getActiveDocument指的是脚本附加到的文档(如果有)。它并不意味着“脚本当前正在处理的事情”。
  2. 如果您正在处理电子表格,那么var ss = SpreadsheetApp.open(file2)将返回包含在file2中的Spreadsheet。显然,API设计者忘记了在DocumentApp中包含open方法,所以我们必须如上所述检查文件ID。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41071264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档