tt3
tt3

Reputation: 31

Create New Folder and Save SHEET1 to the New Folder

I've found scripts that created a new folder and save a copy of a spread sheet to the new folder.

  1. I'd like to save SHEET1 only but I could not figure it out
  2. The script creates new folder folder in My Drive => but I would like to create fhe new folder in SHARE DRIVE / NEW CLIENT
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);

Regards, tt3

Upvotes: 0

Views: 100

Answers (2)

Josh B
Josh B

Reputation: 21

Edited

The first part of your question:
Similar question was answered here.

The second part of your question:
As far as I have understood you have the file id of your destination spreadsheet and you know the source sheet's name. Then try this:

function copyToSpreadsheet(){

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

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

Upvotes: 1

Nikko J.
Nikko J.

Reputation: 5543

You can use the Spreadsheet URL by replacing /edit#gid=somegidhere with /export?gid=somegidhere and download using FetchApp fetch() and use DriveApp createFile() to upload file.

Try this:

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);

}

Source:

enter image description here

Destination:

enter image description here

Content:

enter image description here

Upvotes: 1

Related Questions