Google Sheets
Connect a Google spreadsheet to an Epicollect5 public project
Using the Epicollect5 API, it is possible to export entries in csv format.
The project must be public to work with Google Sheets.
If you have a private project, have a look at the Survey Toolkit code here.
Import Data
Google Sheets features the =IMPORTDATA() function to import data from a given URL in .csv (comma-separated value).
Create a new sheet and click on the first cell. Paste the following in:
After the entries are loaded, it will look like this.
For this example, the public EC5 Demo Project was used.

The URL passed in the IMPORTDATA() function will load the latest 1000 entries as we pass the parameter per_page=500 and page=1
To get more entries (if any), we need to add more IMPORTDATA() calls and tweak the URL to get a different page, i.e., 2, 3, 4 and so on.
It is possible to have up to 50 IMPORTDATA()calls on a single spreadsheet in Google Sheets.
One way to do that would be to create another sheet on the same file and repeat the procedure above, this time using a parameterpage=2in the URL.

Another option is to load the first 500 entries and the headers on the first cell, then on row 502, load the next 500 entries, omitting the headers in the request by passing the parameter headers=false. This way 1000 entries will be loaded on the same sheet.

Lazy Load Images
Google Sheets =IMAGE() formulas can request many images at once.
For large Epicollect5 exports, this may trigger rate limiting, resulting in broken images.
To avoid this, keep media URLs as plain text and use Apps Script to insert =IMAGE() formulas gradually.
Import your entries first:
Then open:
Paste this script:
Configure the script
Update these values:
The spreadsheet ID is in the URL:
Column numbers:
Usage
Reload the spreadsheet, then use:
The script will:
You can also use:
to test one batch manually.
Notes
batchSizecontrols how many rows are loaded per minute.urlColumnscontrols which CSV columns contain media URLs.firstImageColumncontrols where rendered images are written.Invalid or non-HTTPS URLs are skipped and marked as
Invalid image URL.If you want to restart from the beginning, use
Images → Reset progress.
Epicollect5 images are cached for 24 hours, so once an image has loaded, it is normally served from cache on later spreadsheet reloads.
IMPORTDATA() Errors
If IMPORTDATA() throws an error, reduce the number of entries using a lower per_page value.

Last updated