Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
01_read-public-sheet remove useless dependency on shinythemes package that just increases … Jun 9, 2016
02_user-picks-worksheet remove useless dependency on shinythemes package in another app Jun 9, 2016
03_craigslist-lost-and-found deploy craigslist app under a name consistent with others [skip ci] Jun 29, 2015
04_embedded-google-form Fix two bugs in a shiny app example (prob caused by newer dplyr and s… Jun 9, 2016
10_read-write-private-sheet be explicit for default-but-not-base packages Jun 30, 2015
20_gs-explorer update link to dean's post and app Jul 2, 2015


Using googlesheets in Shiny

There are many cool ways to feed data into a Google Sheet ... and then use in a Shiny app:

  • scrape the web
    • built-in functions such as importxml, importfeed and importhtml
    • Google Apps scripts -- possibly written by others and baked into Google Sheet "templates" you can copy then customize
  • crowdsource data via Google Forms or direct Sheet editing, on a small or large scale
  • automated data collection based on web services, such as

Sample apps

We've built a few simple apps to get you started in some important use cases:

  • No authentication/authorization:
    • 01_read-public-sheet: simply read a public sheet. See it deployed here.
    • 02_user-picks-worksheet: read a public sheet but allow the app user to specify which worksheet is being inspected. See it deployed here.
    • 03_craigslist-lost-and-found: reads from a public spreadsheet that utilizes the Google Sheet function IMPORTXML to read data from Vancouver's Craigslist's Lost and Found listings. See it deployed here.
    • 04_embedded-google-form: a Google Form is embedded in the app, allowing user to enter data with native Google Form/Sheets functionality. App also displays the underlying Sheet, allowing user to see the just-entered data. See it deployed here.
  • Credentials are baked into the app:
    • 10_read-write-private-sheet: app users are allowed to view and edit data in a private Google Sheet via the app. A token stored in a file within the app is used for auth. See it deployed here.
    • See Persistent data storage in Shiny apps, a blog post by Dean Attali, for another example of using a Google Sheet as a Shiny data store. He shows how to append new rows to a data table. His app loads the token from the cache in a .httr-oauth file. His demo app is deployed here. To see the googlesheets example, select "Google Sheets (remote)" from the drop-down menu for storage type.
  • User provides Google credentials via the app:
    • 20_gs-explorer: app requires the user to authenticate with Google and authorize the app to deal on their behalf. After authorization, the user is presented with a listing of their Sheets, the option to view details of each spreadsheet and inspect the worksheets contained in a spreadsheet. See it deployed here.

More inspiration for feeding Google Sheets:

Here are examples of using Google Sheets as an online datastore from Amit Argawal's blog:

You can’t perform that action at this time.