Piping and conveyor belts representing an API in Google Sheets and Google Aps Script

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

One Comment

  1. Shae Murphy says:

    I am looking for a way to import not so much the data but primarily the logic from a Google or Excel spreadsheet into my RoR application. This is so that my users can perform the spreadsheet calculations without having to re-enter their data or risking “stepping on each other” if two of them are using the spreadsheet at the same time.

    The spreadsheet changes over time so we want to avoid having a copy of it for each user.

    The data that drives the spreadsheet’s formulas are in a database, and we’d like to avoid the time consuming and error prone task of rekeying them into the spreadsheet.

    My people use this spreadsheet while on the phone with customers, so speed is a consideration.

    The spreadsheet has lots of formulas but they are not that complex. It does not use advanced features that would be hard to recreate in Ruby.
    I’ve prototyped a RoR program to programmatically insert the data into the spreadsheet and get the results back. That avoids the re-keying problem. It works and is cool, but is slow and does not address the concurrent user problem.

    I’ve considered using semaphores to prevent the concurrent usage problem, but that does not address the speed problem and it could possibly slow the process down or produce a deadlock situation.

    I prefer this be a dynamic import into the app that would occur each time the server restarts. Alternatively, this could be a one-time import resulting in RoR code, but that is suboptimal given that would require server redeployment or interpreting ruby strings.

    I primarily want the calculation results. If I can also display the spreadsheet’s tab gui that would be a significant plus.

    The spreadsheet is currently a Google Sheet, but could be moved into Excel if that provides a superior solution.

    I know that through the Google API I could access the logic – but how do I do that en mass and also execute it?

    Does you know of something that would do this? What suggestions do you have?