I am totally new to coding and I need some help on a bit of code. Here is my problem: I want to take many cells of data in a Google spreadsheet and send it in an email. I fi
Your array (called Values) is a 2 dimension array corresponding to a row in your sheet, it means that you have to iterate through its first element. I wrote a small script with a function that composes the message with headers and values like this :
function test(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var responses = ss.getSheetByName("Form Responses");
var lastRow = responses.getLastRow();
var values = responses.getRange("A"+(lastRow)+":AK"+(lastRow)).getValues();// get the range and values in one step
var headers = responses.getRange("A1:AK1").getValues();// do the same for headers
var message = composeMessage(headers,values);// call the function with 2 arrays as arguments
Logger.log(message);// check the result and then send the email with message as text body
}
function composeMessage(headers,values){
var message = 'Here are the data :'
for(var c=0;c
note that you could use the same structure to build an even better looking email in html format using a html table (see reference here)
EDIT2
I wrote a little piece of code that generates both in text and HTML in a table, feel free to improve HTML formating with colors etc...
function testMail(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var responses = ss.getSheetByName("Sheet1");
var lastRow = responses.getLastRow();
var values = responses.getRange("A"+(lastRow)+":M"+(lastRow)).getValues();
var headers = responses.getRange("A1:AK1").getValues();
var message = composeMessage(headers,values);
var messageHTML = composeHtmlMsg(headers,values);
Logger.log(messageHTML);
MailApp.sendEmail(Session.getEffectiveUser().getEmail(),'test html', message,{'htmlBody':messageHTML});
}
function composeMessage(headers,values){
var message = 'Here are the data you submitted :\n'
for(var c=0;c'+headers[0][c]+' '+values[0][c]+' '
}
return message+'';
}
EDIT 3
following your comment : here is the log of my test sheet + screen capture. Check your log to see if you get a similar structure with your data.
[13-07-16 14:29:40:920 CEST] Here are the data you submitted :
data Values Titre Mr nom Wales prénom xavier adresse Sunset Bld, 45678 code 5000 ville Los Angeles pays USA email john.smith@gmail.com tél1 1212345654345 tél2 Commun Théâtre GROUPE Festival organisme xxx

Each of these tags must be terminated by a /t... closing tag (with surrounding <>)to be valid. The loop structure in the script takes care of that automatically as you can see in the log data.
Note also that I added a table end tag at the end of the loop... I forgot it in my first code but it worked like that in my tests.