Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Concatenating strings in Google Apps Script

How do I get both values represented by i and j into the getSheetByName function?

Disclaimer: I am brand new at coding and am probably asking the wrong questions. My goal is to create a simple code that will delete sheets automatically by looping through the sheet names: Week 1, Week 2, etc.

Here's my code so far:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
  var i = "Week "
  var j = 32
  var mysheet = sheet.getSheetByName(i&j)
  sheet.deleteSheet(mysheet)
}
like image 499
weshedrick Avatar asked Apr 05 '18 12:04

weshedrick


People also ask

How do I concatenate a string in Google script?

The CONCAT function in Google Sheets allows you to join two or more strings together into a single string. The syntax for CONCAT is as follows: CONCAT(string1, string2, string3, ...) The function will return a string that is the concatenation of all of the strings you passed in as arguments.

How do you concatenate 2 strings?

Concatenation is the process of appending one string to the end of another string. You concatenate strings by using the + operator. For string literals and string constants, concatenation occurs at compile time; no run-time concatenation occurs.

How do you add a line break in an app script?

New-line characters ("\n") are converted to line-break characters ("\r").


1 Answers

In your code you have written i&j that's not the syntax to concat in Google apps script. Instead you can simply use i + j. For looping you'll need to use any loop, like for, while, do-while.

Combining these suggestions, here is my final suggestion.

Try something like this [By using 'try' here I mean, simply don't copy-n-paste and use. Try to understand and write your own code, curated for your specific need. Maybe that way, we'll grow/learn more]

function myFunction() {
  var START_WEEK = 1; //Put your starting week count here
  var END_WEEK = 2; //Put your ending week count here
  var spreadSheet = SpreadsheetApp.getActiveSpreadsheet()
  var pre_name = "Week"
  var i;
  for (i = START_WEEK; i <= END_WEEK; i++) {
    try {
      spreadSheet.deleteSheet(spreadSheet.getSheetByName(pre_name + " " + i))
    } catch (exp) {
      //Maybe sheet with that name is not found
      Logger.log(exp.toString());
    }
  }
}

This code loop through all sheet whose name start with "Week " and then followed by week count, up till the end week count and if that's found it's deleting them.

Make sure you put in START_WEEK and END_WEEK properly.

Let me know if this doesn't work for you or if you have any query.

Thanks

like image 157
Umair Mohammad Avatar answered Sep 23 '22 18:09

Umair Mohammad