google apps script - Copy a range in active sheet, create new spreadsheet with custom name, paste range -




i wrote first google apps script makes copy of spreadsheet (including tabs within spreadsheet) , places specific folder in user's drive. copy renamed based on cell value in original spreadsheet. here script, reference:

function copydocument() { var ss = spreadsheetapp.getactivespreadsheet(); // current active spreadsheet. var id = ss.getid(); // current active spreadsheet id. var sstocopy = driveapp.getfilebyid(id); // spreadsheet driveapp. var sheet = ss.getactivesheet(); // current active sheet. var sheet_name = sheet.getrange("b1").getvalue(); // value of cell b1, used name new spreadsheet. var folder_name = sheet.getrange("c23").getvalue(); // target folder id. var folder = driveapp.getfolderbyid(folder_name); // id of folder place copy of spreadsheet. sstocopy.makecopy(sheet_name,folder); // make copy of spreadsheet in destination folder. } 

this script works, have been asked modify because script wrote copying on unnecessary tabs , data causing confusion users.

the new script should make copy of specific range in specific sheet, create new spreadsheet, , paste range it. should name after cell value in range.

however, method have come across copies sheet new spreadsheet copyto(spreadsheet). however, google apps script guide specifies "the copied sheet named 'copy of [original name]'" default.

i want able rename copied sheet after specific cell. question is, can use copyto(spreadsheet) , give new spreadsheet custom name, based on cell?

thanks!

you need data specific sheet copy out variable of using:

var sourcesheet = ss.getsheetbyname("sheet1"); var sourcedata = sourcesheet.getdatarange().getvalues(); var originalrangenotation = sourcesheet.getdatarange().geta1notation(); 

then need create new, empty file , make sheet same name

var ssnew = spreadsheetapp.create("my new file name"); ssnew.insertsheet('my new sheet'); 

then add contents saved data new file. since insertsheet makes new sheet active one, use:

var sheetnew = ssnew.getactivesheet(); var rangenew = sheet.getrange(originalrangenotation); range.setvalues(sourcedata); 




wiki

Comments

Popular posts from this blog

Asterisk AGI Python Script to Dialplan does not work -

python - Read npy file directly from S3 StreamingBody -

kotlin - Out-projected type in generic interface prohibits the use of metod with generic parameter -