首页 > 解决方案 > Google Script App - 将文件保存在特定文件夹中

问题描述

我在这里尝试使用此脚本执行的操作是读取具有一列和三行的特定工作表的信息,然后使用这三行创建一个 txt 文件并将其保存到驱动器中的特定文件夹中。

到目前为止,使用这个小脚本,我能够创建我想要的文件,但它默认是在根文件夹中创建的。

function export() { 
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheets = ss.getSheetByName("T2001D");
  var values = sheets.getDataRange().getValues();
  var text = "";
  for (var j in values)
  {
    text += values [j][0]+"\n";
  }
  var ff = DriveApp.createFile("T2001D",text,MimeType.PLAIN_TEXT);
  }

我最近的尝试是这样,我试图将根目录中的文件复制到文件夹“T2001D - Test”中,然后将其从根目录中删除。但是我收到一条错误消息,提示“找不到具有给定 ID 的项目,或者您无权访问它。(第 13 行,文件“代码”)”

function export() { 
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheets = ss.getSheetByName("T2001D");
  var values = sheets.getDataRange().getValues();
  var text = "";
  for (var j in values)
  {
    text += values [j][0]+"\n";
  }
  var ff = DriveApp.createFile("T2001D",text,MimeType.PLAIN_TEXT);
  var fileID = DriveApp.getFilesByName("T2001D");
  var folderID = DriveApp.getFoldersByName("T2001D - Test");
  var file = DriveApp.getFileById(fileID).getName();
  var folder = DriveApp.getFolderById(folderID);
  var newFile = file.makeCopy(file, folder);
}

我拥有对该文件夹的管理员访问权限,因此我认为这不是权限问题。你们对此有什么想法或建议吗?

还有一件事,我不是程序员。我创建这个科学怪人主要是通过我在这个网站上看到的一些例子和我的一点“逆向工程”。

谢谢!

标签: google-apps-script

解决方案


  • 您想将创建的文件从根文件夹移动到特定文件夹。

如果我的理解是正确的,那么直接将文件创建到特定文件夹如何?我认为您的情况有几个答案。因此,请将此视为其中之一。

修改后的脚本:

function export() { 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheetByName("T2001D");
  var values = sheets.getDataRange().getValues();
  var text = "";
  for (var j in values) {
    text += values [j][0]+"\n";
  }
  var folder = DriveApp.getFoldersByName("T2001D - Test").next();
  var ff = folder.createFile("T2001D",text,MimeType.PLAIN_TEXT);

  // if you want to retrieve the file ID of "T2001D", please use ff.getId()
}

笔记:

  • getFilesByName()和的方法检索到的值getFoldersByName()是迭代器。
  • 在这个修改后的脚本中,假设名为 的文件夹T2001D - Test在您的 Google Drive 中仅存在一个。如果有多个同名文件夹,请告诉我。我想修改它。

推荐阅读