创建新文件夹并将 SHEET1 保存到新文件夹

时间:2021-03-25 06:59:16

标签: google-apps-script google-sheets save-as

我找到了创建新文件夹并将电子表格副本保存到新文件夹的脚本。

  1. 我只想保存 SHEET1,但我想不出来
  2. 脚本在“我的驱动器”中创建新文件夹 => 但我想在“共享驱动器/新客户端”中创建新文件夹
var ss               = SpreadsheetApp.getActiveSheet();
var dest_folder_name = ss.getRange('A1').getValue();
var copy_name        = ss.getRange('A2').getValue();

var dest_folder      = "";
var file_id          = SpreadsheetApp.getActiveSpreadsheet().getId();
var file             = DriveApp.getFileById(file_id);
var parent_folder    = file.getParents().next();
var sub_folders      = parent_folder.getFolders();

// search a destination folder in current folder
while (sub_folders.hasNext()) {
    dest_folder = sub_folders.next();
    if (dest_folder.getName() === dest_folder_name) {
        break;
    }
    dest_folder = "";
}

// create the destination folder if nothing was found
if (dest_folder === "") {
    dest_folder = parent_folder.createFolder(dest_folder_name);
}

// copy the spreadsheet to the destination folder
file.makeCopy(copy_name, dest_folder);

问候, tt3

2 个答案:

答案 0 :(得分:1)

已编辑

问题的第一部分:
here 回答了类似的问题。

问题的第二部分:
据我所知,您拥有目标电子表格的文件 ID,并且知道源工作表的名称。然后试试这个:

function copyToSpreadsheet(){

 var spreadsheet = SpreadsheetApp.openById("Your Spreadsheet ID");
 var sheet = spreadsheet.getSheetByName("SheetX");

 var destination = SpreadsheetApp.openById('Destination ID');
 sheet.copyTo(destination);
}

答案 1 :(得分:1)

您可以通过将 /edit#gid=somegidhere 替换为 /export?gid=somegidhere 来使用电子表格 URL 并使用 FetchApp fetch() 下载并使用 DriveApp createFile() 上传文件。

试试这个:

function myFunction() {

    
  var dest_folder_name = "66794562"
  var dest_folder      = "";
  var file_id          = SpreadsheetApp.getActiveSpreadsheet().getId();
  var file             = DriveApp.getFileById(file_id);
  var parent_folder    = file.getParents().next();
  var sub_folders      = parent_folder.getFolders();

  // search a destination folder in current folder
  while (sub_folders.hasNext()) {
      dest_folder = sub_folders.next();
      if (dest_folder.getName() === dest_folder_name) {
          break;
      }
      dest_folder = "";
  }

  // create the destination folder if nothing was found
  if (dest_folder === "") {
      dest_folder = parent_folder.createFolder(dest_folder_name);
  }

  var sh = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = sh.getSheetByName("Sheet1");
  var spreadsheetId = sh.getId();
  var sheetId = sheet.getSheetId();

  var url           = 'https://docs.google.com/spreadsheets/d/'+spreadsheetId+'/export?gid='+sheetId;
  var token         = ScriptApp.getOAuthToken();
  var response      = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': 'Bearer ' +  token
    }
  });

  var fileName = 'copyofSheet1';
  var blob   = response.getBlob().setName(fileName);
  dest_folder.createFile(blob);

}

来源:

enter image description here

目的地:

enter image description here

内容:

enter image description here