Simone
Simone

Reputation: 87

How to correctly write into Google Spreadsheet with Google Apps Script?

I'm creating a webpage with a form and I have to send data to a Google Spreadsheet. I found a good code searching this site but I don't know how to edit it to store my data in Google Spreadsheet.

My form is made this way

<form name="reqForm" id="reqForm" method="get" action="SCRIPT" accept-charset="UTF-8">
            <input type="hidden" name="reqID" id="reqID" />
            <label for="name">Name:</label>
               <input type="text" name="Name" id="Name"/>
            <label for="surname">Surname:</label>
               <input type="text" name="surname" id="surname"/>
            <label for="SERIAL">Serial:</label>
               <input type="text" name="serial" id="serial"/>
            <label for="email">E-mail:</label>
               <input type="text" name="email" id="mail"/>
            <label for="text">Request:</label>
               <textarea id="text"></textarea>
               <input type="submit" value="Send" />
</form>

The script is the same, from the example I linked (I just changed the function name because of an error)

function doPost(e){

   var id = "";
   var name = e.parameter['name'];
   var surname = e.parameter['surname'];
   var serial = e.parameter['serial'];
   var eMail = e.parameter['email'];
   var text = e.parameter['text'];
   var date = new Date();
   var ans = ""
   var flag = "WIP";

   var vals = [id, date, name, surname, serial, eMail, text, ans, flag];

  var sheetObj = SpreadsheetApp.openById("myKey").getSheetByName('Requests').appendRow(vals);
  // return ContentService.createTextOutput(e);

}

If I fill the form in this way:

in my Spreadsheet I see data in this order: [DATE] [Serial] [Mail] [Name] [Surname]

How can modify the function to put my data into the spreadsheet in some kind of order that I can decide?

[UPDATE]: I updated the code: the result of this is a line correctly ordered but filled with "undefined"...

Upvotes: 1

Views: 171

Answers (1)

Parag Jadhav
Parag Jadhav

Reputation: 1899

After submitting the form, you can get form parameters using e.parameter[<parameter_name>].

For example to get the surname,

var surname = e.parameter['surname'];

To insert form data in Google Spreadsheet,

var sheetObj = SpreadsheetApp.openById("myKey").getSheetByName("sheetname");
//Here you can shuffle the order of values anyway you want.
sheetObj.appendRow([DATE, Serial, Mail, Name, Surname]);
//or you can do it like this
sheetObj.appendRow([DATE, Mail, Name, Surname, Serial]);

Hope this helps.

Upvotes: 3

Related Questions