Maker @ Apipheny.io, an API Integrator for Google Sheets. Based in SF Bay. Data Analytics Nerd.
Google Sheets is a great tool to use for business intelligence and data analysis. If you want to eliminate manual data imports and save time, then let me will show you how you can automatically connect and import data from external sources into Google Sheets.
The 3 best ways to import data into Google Sheets are:
Let's dive into each of these 3 methods in more detail.
Google Sheets has 5 built-in functions that can help you import data:
Let's see how we can use each of these Google Sheets functions to import external data automatically.
You can use the =IMPORTDATA function to pull data from a given URL in CSV or TSV format. Just use the function =IMPORTDATA("X") and replace X with an a URL.
The URL must be enclosed in quotation marks or it can be a reference to a cell that contains the appropriate text. You can only use a max of 50 ImportData functions per Google Sheet.
Use =ImportFeed to pull an RSS or ATOM feed.
url: URL of the RSS or ATOM feed, including the protocol (e.g. http:// or https://). The url has to be in quotes or it can reference a cell that contains the appropriate text.
query: This specifies what data to fetch from url. This is optional, as the default is "items". query options:
headers: Whether to include column headers as an extra row on top of the returned value. The default is false.
num_items: For queries of certain items, the number of items to return, starting with the most recent. Specifying this is optional, if num_items is not specified, then all the items that are currently published on the feed will be pulled.
Use the =ImportHTML function to pull table or list data from a HTML page. Just use the function =ImportHTML(X) and replace "X" with a URL, query, or index.
url: URL of the page you want to pull information from, including the protocol (e.g. http:// or https://). The url must be enclosed in quotation marks or it can be a reference to a cell that contains the appropriate text.
query: You can use either "list" or "table" depending on the type of structure that contains the data you want to pull.
index: This is the index, starting with 1, that identifies the table or list as defined in the HTML source that you want to pull.
Use the =ImportRange function to pull a range of cells from a specific spreadsheet. This function requires that the sheet must have permission to import data from another spreadsheet. When you use this function for the first time, you will be prompted to enable permission. Once you give access, then any user on the destination sheet can use the IMPORTRANGE function to import data the source spreadsheet. You can revoke permission at any time. Also, if the data set you're trying to import is too big, then you'll get an error message.
spreadsheet_url: This is the URL of the spreadsheet that you want to import data from. The value for spreadsheet_url must be in quotation marks or it can be a reference to a cell containing the URL of a spreadsheet.
range_string: This is a string, formatted as "[sheet_name!]range", which specifies the range to pull. The sheet_name of range_string is optional. The default IMPORTRANGE will pull from the given range on the first sheet. The value of range_string must either be in quotation marks or it can be a reference to a cell that contains the appropriate text.
Use =ImportXML to pull data from structured data types like XML, HTML, CSV, TSV, RSS, or ATOM.
url: This is the URL of the webpage, which must include the protocol (e.g. http:// or https://). The value of the url must either be in quotation marks or it can be a reference to the cell that contains the appropriate text.
xpath_query: This is the XPath query that will run on the structured data. You can find more information on XPath here.
There's several Google Sheets Add-ons (aka Google Sheets apps) available in the G Suite Marketplace that you can use to connect different types of external data sources. A couple of the most popular Google Sheets add-ons for connecting a data source to Google Sheets are Apipheny and Supermetrics.
Apipheny.io is a Google Sheets add-on that you can use to connect any JSON or CSV API to Google Sheets. With Apipheny you can import an API to Google Sheets just by entering your API URL and key and then clicking "Run".
It's a simple no-code tool for connecting an API to Google Sheets. You can pull in API data from any JSON or CSV API data source and you can save your API request or schedule it to run on a recurring basis.
It works with GET and POST requests and it also includes advanced features like the ability to save your API requests for easy access and the ability to schedule your API request to refresh the data in your spreadsheet on a recurring basis.
There's also a custom =APIPHENY() function you can use to call an API request in your spreadsheet or you can reference the value of a cell in your API query.
Disclosure: The author is a co-founder of Apipheny.
Supermetrics is a reporting and marketing automation tool that you can use to pull in paid ads, SEO, social media, and other analytics data. It has a lot of pre-built data connectors ready to help you connect different data sources so you can easily pull your data into Google Sheets. You can see all of their different integrations here or you can install Supermetrics here.
Supermetrics vs Apipheny
There's two key differences between Apipheny and Supermetrics:
You can use Google Apps Script to write a simple code that will connect and import data into Google Sheets, or you can copy and paste one of the publicly shared scripts from a site like Github or Stack Overflow.
For example, here's how you can use Google Apps Script to import JSON data into Google Sheets:
Each method has it's own pros and cons. The Google Sheets functions and Google Apps Script methods are limited in functionality but they are free to use. The Google Sheets Add-ons are more feature-rich but they cost money. Depending on how simple or complex your query is will determine the right tool for your needs.
Importing data from various data sources into Google Sheets is easier than you might think. There's an abundance of available functions and tools you can use and there's more coming out all the time. If none of the above methods are what you're looking for, you could code your own tool using Google Sheets API and Google Apps Script. Check out this tutorial to learn how. Or you could hire someone to code it for you so you can get exactly what you're looking for. Getting a custom made solution is pretty cheap these days when you hire a freelancer from a website like Fiverr or Upwork.