For the complete documentation index, see llms.txt. This page is also available as Markdown.

Google Sheets

Connect a Google spreadsheet to an Epicollect5 public project

Using the Epicollect5 API, it is possible to export entries in csv format.

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:

=IMPORTDATA("https://five.epicollect.net/api/export/entries/ec5-demo-project?form_ref=b963c3867b1441b89cb552b982f04bc8_5784e0609397d&format=csv&per_page=500&page=1")

After the entries are loaded, it will look like this.

Entries loaded in Google Sheets

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.

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.

Loading entries in separate sheets

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.

Loading entries in 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

  • batchSize controls how many rows are loaded per minute.

  • urlColumns controls which CSV columns contain media URLs.

  • firstImageColumn controls 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

Last updated