How to create a web form to get data from Google Sheets

In previous tutorials, we talked about building web apps to interact with Google Sheets using Google Apps Script. When you build those types of web apps, you may need to implement a search field to get data from Google Sheets back.

This tutorial will show you how you can create a web form to search and get data from Google Sheets. You can share this web form with others and let them search for data in your Google Sheet.

This is also useful when you want to share a part of your Google Sheets without giving access to your entire Spreadsheet. In such cases, you can create user-friendly web pages to share your Google Sheets data using this method.

There are two methods that you can follow to work with Google Apps Script. The first is Container-bound Scripts, and the second is Standalone Scripts. Here I am using the second, so it does not bound the script to the Google Sheet.

Live demo

You can access the live web form and the Google Sheet used in this tutorial from the following links.

How to create this web form to get data from Google Sheets

Step 01 – Prepare your Google Sheet

For this tutorial, you can either use your own data sheet (A Google Sheet) or you can make a copy of the Google Sheet used in this tutorial from the following link. You can also use the Spreadsheet ID of this Google Sheet, even without copying it to your Google Drive.

Step 02 – Make a copy of the Google Apps Script file

You can make a copy of the Google Apps Script file to your drive from the following link.

The above Google Apps Script file contains the following two files. Here I am not going to explain the code line by line. Instead, I will briefly explain the purpose of each file and function below.

  1. Index.html
  2. Code.gs

Important ! : If you are creating the project with new Google Apps Script (instead of making a copy of the Apps Script project given above), you need to enable Google Sheets API Service for your project.

To add Google Sheets Service,

  • Click the + icon in the Services tab,
  • Select Google Sheets API from the list in the Add a service popup box.
  • Then, click Add.

1. Index.html file

This file includes the HTML code for the search form and required JavaScript files and functions. Here I am using Bootstrap for styling the form and table. You can see included the Bootstrap related files in, lines 5,6, and 7.

The search form is from lines 89 to 97. Once you hit the search button, it will execute the handleFormSubmit JavaScript function (in, line 24). This function gets the relevant search results from the server (explain below) and passes them to the createTable function (line 30).

In the createTable function, lines from 35 to 59 are the column headers of the result table. You should write this in the same order as in your Google Sheet. The dataArray variable contains the search results received from handleFormSubmit function. The createTable function creates the table from the values in the dataArray variable and print the results inside <div id="search-results"> in line 106.

2. Code.gs file

This file contains the server-side script. The above mentioned function handleFormSubmit in the Index.html file passes the formObject to the processForm function in this Code.gs file.

If the formObject contain searchtext, it passes to the search function.

In the search function, replace the spreadhseetId and the dataRange as per your Google Sheet and data range.

The search function looks for matching contents in the Google Sheet and returns an array of rows back to the processForm function. It returns the results back to the handleFormSubmit function in the Index.html file.

Step 03 – Publish as a web app

Once you have done all the coding, you can get a URL to this web app by deploying it as a web app. To do that,

  1. Go to Google Apps Script file
  2. Then go to “Publish” and select “Deploy as web app…
  3. For “Execute the app as“; field select your email.
  4. Under “Who has access to the app“: option select “Anyone
  5. Click “Update
  6. Copy the URL in the next window and paste in the browser to access the form.

Wrapping Up

With Google Apps Script, you can build various types of web apps for free. When building those web apps you may need to build a search option to get data from Google Sheets to the web app.

This tutorial explained to you how to create a basic search form in your web app to retrieve data from Google Sheets.

71 thoughts on “How to create a web form to get data from Google Sheets”

  1. How to prevent entry of any duplicate value in any specific column in the spreadsheet. let student id in column A should always unique

    Reply
  2. hello admit

    i want to ask about your project that was very nice and could you help me in your code like change table formate like 3 rows and 3 colums to fill it . i hope you understand my problem and you could give reply as soon as possible.

    Reply
  3. hi, i wanna ask u, if its possible show just a few columns on web form. Taking example ur code, i would just show columns ORDERNUMBER, QUANTITYORDERED, PRICEEACH,ORDERLINENUMBER and CONTACTFIRSTNAME, its ok possible do that? tell me how do it, thx

    Reply
  4. Great post.
    Can you share a code for showing result in columnar form like this
    ORDERNUMBER
    QUANTITYORDERED
    PRICEEACH
    ORDERLINENUMBER
    SALES
    ORDERDATE
    STATUS
    QTR_ID
    MONTH_ID
    YEAR_ID
    PRODUCTLINE
    MSRP
    PRODUCTCODE
    CUSTOMERNAME
    PHONE
    ADDRESSLINE1
    ADDRESSLINE2
    CITY
    STATE
    POSTALCODE
    COUNTRY
    TERRITORY
    CONTACTLASTNAME
    CONTACTFIRSTNAME
    DEALSIZE

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share via
Copy link