首页 > 解决方案 > 谷歌应用脚​​本 - 从另一个人保存到文件夹

问题描述

我想将其他人的文档保存到 Google 云端硬盘中的打开文件夹中。

我尝试了以下代码,但如果我不是代码的所有者,它就不起作用。

function saveToFolder() {
  var folder = DriveApp.getFolderById("###");
  //var destSpreasheet = SpreadsheetApp.open(DriveApp.getFolderById(SpreadsheetApp.getActiveSpreadsheet().getId()).moveTo(folder))
  //var ss = SpreadsheetApp.getActiveSpreadsheet().
  //get active Sheet
  var sSpreadsheet = SpreadsheetApp.getActive;
  var sheetname = sSpreadsheet().getActiveSheet().getName();
  var sSheet = sSpreadsheet().getSheetByName(sheetname);
  //var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(sSpreadsheet().getId()).makeCopy("test",folder))
  var destSpreadsheet = DriveApp.getFileById(sSpreadsheet().getId()).makeCopy(SpreadsheetApp.getActiveSpreadsheet().getName(), folder)
}

目标是很多人可以通过使用按钮将谷歌表格安全地保存到谷歌驱动器中的同一文件夹中。非常感谢你的帮助

标签: google-apps-scriptgoogle-sheets

解决方案


您的代码中有一些拼写错误,例如getActive()和 usingsSpreadsheet()而不是sSpreadsheet(请参阅链接的文档)。这是您的“固定代码”,它采用电子表格并在 Drive 文件夹中创建它的副本(代码具有不言自明的注释):

function myFunction() {
  // Get folder by ID
  var folder = DriveApp.getFolderById("FOLDER ID");

// Get active Spreadsheet (if this script is not bounded use openById or openByUrl)
  var sSpreadsheet = SpreadsheetApp.getActive();
  // Make copy
  DriveApp.getFileById(sSpreadsheet.getId()).makeCopy(SpreadsheetApp.getActive().getName(), folder)
}

还要记住,要使用DriveApp,您必须首先启用 Drive API 服务


推荐阅读