Share


Save Web Form Data to Spreadsheets or Google Sheets

by Adhaar Sharma on 2020-06-10

Set up a contact form in an HTML file

Okay, if you don’t know any HTML, then this might be a steep learning curve. The example is small so you should Google terms you don’t understand and it might make sense.


Let’s create a form in HTML. It’s a basic contact form and doesn’t contain any styling.

The form will look like this:

WebFormData2
How the form will look

Open up a blank file in the text editor you use for programming, copy and paste the code below and save the file with a [.html] extension. We saved ours as ContactForm.html

We will walk through the HTML part now and the Javascript part later.


The contact form has 4 fields.

Pay attention to the name attribute of the <input> tags. These will be the column headers of our spreadsheet we save the data in and they MUST match up.

We are going to name the four input tags as follows. The lines refer to the line of code:

  1. full_name, line 29
    This will be a text field with the full name of the person
  2. email, line 33
    This will be a text field with the email of the person
  3. age, lines 37-38
    This will be a radio selection field with two age options. 18–35 and 35+. We will denote them in the value attribute of the radio fields
  4. message, line 42
    This will be a textarea that will contain the message the person types

All four <input> tags will be inside a <form> tag (line 26) that we will give an id attribute of myForm. Do not give it any other id as the data submission to spreadsheet function that we will write later in Javascript is dependent on it.

Finally, our main component will be a <button> (line 47) that will be submitting the data. In its onclick attribute we are going to specify the function SubForm().

Again, do not give the function another name as we will be writing this exact function later in Javascript to handle submitting the data.




The contact form has 4 fields.

Pay attention to the name attribute of the <input> tags. These will be the column headers of our spreadsheet we save the data in and they MUST match up.

We are going to name the four input tags as follows. The lines refer to the line of code:

  1. full_name, line 31
    This will be a text field with the full name of the person
  2. email, line 35
    This will be a text field with the email of the person
  3. age, lines 39-40
    This will be a radio selection field with two age options. 18–35 and 35+. We will denote them in the value attribute of the radio fields
  4. message, line 44
    This will be a textarea that will contain the message the person types

All four <input> tags will be inside a <form> tag (line 28) that we will give an id attribute of myForm. Do not give it any other id as the data submission to spreadsheet function that we will write later in Javascript is dependent on it.

Finally, our main component will be a <button> (line 49) that will be submitting the data. In its onclick attribute we are going to specify the function SubForm().

Again, do not give the function another name as we will be writing this exact function later in Javascript to handle submitting the data.



Prepare your Google Sheet or Spreadsheet that the data will be saved to


1. Create a blank Google Sheet or Spreadsheet

GoogleSheet


2. Write column headers equal to the name(s) of the <input> tags

GoogleSheet


Each time someone submits the data, it will save in the appropriate column.
This step is super important so make sure these headers are EXACTLY the same as the names of the input tags above.


3. Save this spreadsheet with any name you want

GoogleSheet




Get your API URL from API Spreadsheets


1. Sign up for an Account

• Click on Sign Up in the Navbar

APISignup

• Sign up with your email and password

API Spreadsheets


2. Upload Your Local File or Connect to the Google Sheets you created in Step 2

API Dashboard

3. Copy the Create API URL for your file

Copy the API URL from the Create tab for your file and save it somewhere handy. We are going to be using this in the Javascript below to submit the data.

API Dashboard

4. [Optional] If your API is Private you will also need to copy the Access and Secret Key and save them somewhere handy

WebFormData50
You only need to do this for a Private API


Configure the Javascript to submit data from the form

We are going to use AJAX to submit the form. Again, if you are not familiar with Javascript, jQuery or AJAX, it might be a steep learning curve.

We are going to include the full HTML code here again. The Javascript part is within the <head> tags



1. Add jQuery from a CDN (lines 5-8)

We need to ensure the FULL jQuery library is included in our HTML to use AJAX.



2. Write the SubForm() function between two script tags (lines 9–23)

The SubForm() function is below. You will replace the URL below with the URL you obtained in Step 3. The rest of the function will remain the same.


We will go through this function in more detail at the end of this post but for now all you need to know is if the data was successfully saved an alert will pop up saying Form Data Submitted :) otherwise an alert will pop up saying There was an error :(.

That’s it! We have done everything needed to save data from our web form to our spreadsheet.


Now let’s test it out and see how to view our data.



1. Add jQuery from a CDN (lines 5-8)

We need to ensure the FULL jQuery library is included in our HTML to use AJAX.



2. Write the SubForm() function between two script tags (lines 9–25)

The SubForm() function is below. You will replace the URL below with the URL you obtained in Step 3. The rest of the function will remain the same.


We will go through this function in more detail at the end of this post but for now all you need to know is if the data was successfully saved an alert will pop up saying Form Data Submitted :) otherwise an alert will pop up saying There was an error :(.

That’s it! We have done everything needed to save data from our web form to our spreadsheet.


Now let’s test it out and see how to view our data.




Testing

1. Save your HTML file and open it in a browser to see the contact form

ContactForm

2. Fill out your form and click Submit

An alert window should pop up saying Form Data Submitted :)

WebFormData

If the alert window says There was an error :( then feel free to email us at info@apispreadsheets.com and we can try to help you out.


3. View your data in your spreadsheet or Google Sheet!!

If you are using Google Sheets, you can open your Sheet and it will have all the contact details!

GoogleSheetDetails


If you are using a Spreadsheet, do the following:

  • Log in to API Spreadsheets
  • Click on the Files tab

  • API Spreadsheets Tab

  • Find your spreadsheet and click on the Download File button to download it

  • Excel Spreadsheets


  • Open it up and you should see the data we submitted above!!!





Some Parting Thoughts

  • You can keep submitting data to this spreadsheet and it will contain all the records whenever you download it.
  • If you need to manually change something in the spreadsheet, then you can change it and replace it using the Replace File button. This will preserve your API URL and still contain any updates you make. NOTE: whatever you reupload will be the master version so use this with caution.
  • Finally, the Javascript function to submit the data is below. Let’s walk through it:

  1. We use jQuery syntax to call ajax. That’s what the $.ajax does
  2. The url is the URL we are calling the request. In this case it is a type post request.
  3. The data is our data from #myForm. The serialiazeArray() method creates a JavaScript array of objects, ready to be encoded as a JSON string (don’t worry if you don’t understand this too deeply. As long as you name your inputs and spreadsheet headers properly this whole demo should work)
  4. If the request was successful then the success function is called.
  5. If the request had an error then the error function is called.
  1. We use jQuery syntax to call ajax. That’s what the $.ajax does
  2. The url is the URL we are calling the request. In this case it is a type post request.
  3. The data is our data from #myForm. The serialiazeArray() method creates a JavaScript array of objects, ready to be encoded as a JSON string (don’t worry if you don’t understand this too deeply. As long as you name your inputs and spreadsheet headers properly this whole demo should work)
  4. The accessKey and secretKey makes our API Private and functions like a Username & Password. It's only needed for a Private API
  5. If the request was successful then the success function is called.
  6. If the request had an error then the error function is called.


Check out our video on how to Save Web Data to Forms!



If you have any further questions, feel free to email us at info@lovespreadsheets.com! We can’t wait to see what you build.

Check out our other tutorials!

Let us know what you think