I’m using web based database for which I need to add spreadsheet capabilities to its front end. I was thinking that I could use Google Docs Spreadsheets. Their Google App Script seems to have the functionally that I need. In particular I can use the URLFetch service combined with onEdit events to keep the spreadsheet and DB in sync — AJAX style. It also allows me a lot of flexibility in constructing, saving, and sharing the spreadsheets
However some things about Google App Script gave me pause. It runs server-side so it’s difficult to debug locally. It doesn’t have any sort of debugger with breakpoints or stepping. It can’t import external modules or libraries. No JSLint. Without these I started getting that “Uh, oh, this is going to hurt” feeling.
So I’m wondering if there’s a better way to bolt on browser accessible spreadsheet functionality to an existing web based database? Or are there best practices for getting the most out of Google App Script?
EDIT:
These are the potential solutions in order of what would be best for my application:
- Browser based JavaScript spreadsheet engine. (May not exist.)
- Python spreadsheet engine module that I can install on Google App Engine. (I haven’t seen this either.)
- An more robust and AJAXian approach to Google Spreadsheets. (See original question.)
- Open source spreadsheet engines that I can install on EC2. (These seem to exist — possibly SocialCalc, or Simple Spreadsheet. Recommendations?)
We use spreadsheet functionality on a web page, but rather than scripting all the features of a spreadsheet, we use a calculation engine which gives us the programmatic heart of spreadsheet functionality. A calculation engine knows how to calculate hundreds of types of formulas, handle dependencies (and the order between dependencies), cell formatting etc.
In my particular case, we use SpreadsheetGear – http://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx
We create a HTML representation of a spreadsheet with cell navigation and various other features using some javascript. When we need the sheet to recalculate (eg F9 in Excel) we send the entire spreadsheet to the server, ask it to calculate everything and then refill the web page representation with the results. This may also write to the database depending on what’s on the spreadsheet.
Perhaps I need your input at this point, to see if my answer is not too far off track.