Reputation: 2300
I have three columns of data
selector label option list
time you personally have been engaged with uscan label_1 Arts
time you personally have been engaged with uscan label_2 Children’s Issues
time you personally have been engaged with uscan label_3 Coaching
time you personally have been engaged with uscan label_4 Community Development
time you personally have been engaged with uscan label_5 Conflict
time you personally have been engaged with uscan label_6 Consulting
I am trying to concatenate these columns so that in the 4th column I get
option {
label: "Label_1;
selector: ["time you personally have been engaged with uscan"="Arts"];
}
option {
label: "Label_2;
selector: ["time you personally have been engaged with uscan"="Children’s Issues"];
}
etc
My attempt
result[i] = [""option {label:""" + values[i][0] + "";" + "selector: [" + values[i][0] + ""=" + + values[i][1] + ""];}"];
Foiled by all the single quotes that are required
Thank you
GS
function OptionsList() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("OptionList");
var lr = sheet.getLastRow();
var values = sheet.getRange(2, 1, lr,3).getValues();
var result = [];
//Add items to results
for(var i=0; i<lr; i++){
result[i] = [""option {label:""" + values[i][0] + "";" + "selector: [" + values[i][0] + ""=" + + values[i][1] + ""];}"];
}
//Post back to column 4 starting on row 2
sheet.getRange(2, 4, lr, 1).setValues(result);
}
Upvotes: 0
Views: 1717
Reputation: 201513
How about this modification?
result[i]
"
was escaped like \"
.\n
.filter()
.function OptionsList() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("OptionList");
var lr = sheet.getLastRow();
var values = sheet.getRange(2, 1, lr, 3).getValues();
values = values.filter(function(e){return e[0] && e[1] && e[2]}); // Added
var result = [];
//Add items to results
for(var i=0; i<values.length; i++){ // Modified
result[i] = ["option {\nlabel: \"" + values[i][1] + ";\n" + "selector: [\"" + values[i][0] + "\"=\"" + values[i][2] + "\"];\n}"]; // Modified
}
//Post back to column 4 starting on row 2
sheet.getRange(2, 4, result.length, 1).setValues(result); // Modified
}
"
after "Label_1
of label: "Label_1;
? If you want, please modify as follows.
+ values[i][1] + "\";\n"
If I misunderstand your question, please tell me. I would like to modify it.
Upvotes: 1