Using Google Spreadsheet as DB for apps - google-sheets

I want to use Google spreadsheets to store data online so multiple people can enter and maintain data, then publish or export (csv, xls, ods) the sheet for their application. What is the easiest way to process the sheet? If the data can be accessed as a link the updates could be immediately reflected in the client's app.

This article Data Scraping Wikipedia with Google Spreadsheets discusses using Google spreadsheets as an application platform.
It already has features that allow you to share the spreadsheet with multiple editors, as well as the ability to define forms that you can invite people to fill out who's results will be entered into the spreadsheet as a row.

Just in case its still vaguely of interest 5 months later, there is a SQL-like wrapper language for Google Spreadsheets at:
http://gqlx.twyst.co.za
Its very much an alpha release - but maybe its of some use or perhaps the code could give you some ideas.

I think if I am clear on your requirements, you want to store your data online in a Google Spreadsheet where multiple people can access that right? Then you want an app to use that data? Correct me if I am wrong.
It is possible to have Google spreadsheet as a database and the client app can directly access that data through APIs - spreadsheet APIs . If you want a simple link where people can go and update - you can also have a web app using google apps scripting. very simple to use and would solve your purpose too , why to export your data to ods, xls, csv, make your app directly over Google Spreadsheet. Would be maintainable too.

Related

want to update google sheets from a streaming database...data has to be readily available for querying/reporting

querying a student database with columns in google sheets. currently the data is updated overnight but want to change the source to a streaming source so that data is more dynamic, more current reflecting reality versus 'yesterday's news'.
You did not provide enough details for a specific answer. Google Sheets has an API you can use for reading and updating data (Java sample, for example), and depending on your source of data you might have a built-in integration.

How to Sync data from different Google Sheets to a Google master Sheet

I have Team of 15 people updating there data of call backs and other info in the Microsoft Excel
Now i want to use Google Sheets for Real time data. So i want all of them to use a Google Sheet and a Team leader should have the updates when ever they are updating the there own sheets. Everyone should have there own passwords to open there but an Admin should have access to all of there data in those sheets. I hope you understood my needs. I know its possible with Google Sheets but i don,t know how to prepare one as am new to this platform.
Please Help.
If you use
=importrange("sheet url", "range you want to import")
on a separate sheet, it will update dynamically as they change things - I have done this specifically with remote employees previously

Talend: use Google Spreadsheets as Input and Output

I'm using Talend for several ETL-jobs. Main focus on inserting and updating data defined in local Excel files to Salesforce. Excel and Salesforce are used as Input- and Output-Connections massively.
This works like a charm!
Now instead of Excel I need to use Google Spreadsheets as data inputs/outputs. Just manually download as Excel isn't good enough. Reason: I need a highspeed repeatable process executed thousands of times bi-directional. Uploading/Downloading XLS/CSV is not an option.
As an unfortunate, my researches concluded that there is NO Google spreadsheet connector available. I found this legacy-project which seems to be abandoned: https://code.google.com/p/google-talend-components/ - it is outdated from Talend-side as well as from Google (old API versions).
One other thing I've seen, is that Talend comes with Google Big Data Support: https://www.youtube.com/watch?v=BK6G3sTmwVE - Also Google Big Data might be somehow connectable to Google Spreadsheet - but I wasn't able to figure out how. Is this easy or hard? How to start? What to read?
I need to know if there is any viable approach to read and write data with Talend from and to Google-Spreadsheet.
Alternatively is there an other ETL-tool like Talend which has connectors to Google Spreadsheet AND Salesforce out-of-the-box?
Is there a direct google docs connector in Talend, no. But you can do what you are looking to do if you think of the problem a little differently. It sounds like you need to read and write to spreadsheets then upload/download from google. Lets take each problem separately.
Upload/Download
Google storage. If you need to upload and download files from google Talend has excellent integration with their API. As you mentioned, Talend --> Big Data has components to interact with Google Storage. This type of storage is primary meant as back end storage for an application.
In Talend under Cloud-->Google Drive there are components to upload and download from Google Drive. Google Drive is primarily meant as Chrome app and has direct integration with Google Docs.
Writing to Google Docs
Regarding your need to interact with google docs, you do not need any special components for this. Google docs can utilize csv and Excel formats. If you create and modify your documents in Talend using the standard file interaction components ( delimited, Excel, etc.) you can upload and download these documents using one of the two methods I described above (Google Storage or Drive) depending on what type of storage you are using.

When to Call Something "Docs" and When to Call it "Drive"

So, a quick background. I make productivity apps (specifically CRM and Project Management). And I love the docs, spreadsheet and presentation products made by Google. Not surprisingly, my products have done a lot of "things" with Google Docs for a long time:
Create "native" (ie. Docs/Spreadsheets/Presentations) documents
Use native documents as templates
Link and modify permissions of any file in Docs/Drive
Upload any arbitrary file
etc.
What I'm confused about is what does Google want me to do on the labels on the buttons in my app. Right now, they all say "Google Docs". You're linking any arbitrary file to a presentation, you're linking it from "Google Docs". You're exporting a spreadsheet of time sheet entries, you're exporting it to "Google Docs". You upload a PDF, you uploaded it to Google Docs. Etc.
What I'm confused about is that, and correct me if I'm wrong, but I don't think it is a complete switch over to "Drive." I still see labels on the Google site for Google Docs. So, this is what I think the breakdown is:
If it is a Google "native" file, then it is Docs, else it is Drive. Thus, if your uploading any arbitrary file, that button should refer to drive. But if you are exporting a spreadsheet of data to the Google Spreadsheets format, then that is Docs.
Is this right at all? Does Google have some information somewhere?
Disclaimer: personal opinion
I would use Drive everywhere, except when specifically talking about the collaborative word processor provided in Google Drive, that is the Google Doc.
I would also make sure that all my integrations use the new Google Drive API.
There is reasonably good guidance here: https://developers.google.com/drive/branding
Google Docs and Google Drive are two seperate products from Google. They can work together, but they are still their own individual products and should be called their respective names when being used

Fetch data from Google Spreadsheet

how can I fetch data from a google spreadsheet? It's not something like embedding a google doc on a webpage. Suppose, you have a table consisting of 10 rows and 10 columns at google doc. Now, you created a 10x10 table on a PHP webpage. Now you will show the respective values of the cells from that google doc to your php page. It's just like fetching data from a MySQL database and showing them on your web page. But here instead of using a MySQL database, I want to use Google Doc and do the rest. But how can I do it?
Thank you.
Google has a REST api for spreadsheets and native apis for many languages.
https://developers.google.com/sheets/api
If your data is the typical table layout (rows of data with a header row) - then you might find this python library helpful:
http://sheetsync.readthedocs.org/en/latest/
Temboo provides an SDK library that makes it pretty easy to interact with Google Spreadsheets in multiple languages, including Java/Android, PHP, Ruby, Python, Node.js, and Objective C. There's also an online tool for experimenting with different Google Spreadsheet API calls. Take a look at https://www.temboo.com/library/Library/Google/Spreadsheets/
(Full disclosure: I work at Temboo)

Resources