In a previous post I mentioned a larger project I was working on: the cliche “It’s like X but for Y” pitch for that project is the title of this post, or alternatively “It’s like version control, but for spreadsheets”.
In the area I currently work in, the business lives and breathes spreadsheets. By corporate law, every third email must have a spreadsheet attached. You pretty much can’t climb the career ladder without making at least 15 spreadsheets per quarter, regardless of whether anyone ever looks at them.
The main issue is that, very often, spreadsheets get passed around an updated with no essence of control or tracking. It’s true that Excel does recently support ‘Track Changes’, but this is poorly implemented and (in my experience) never used.
I am attempting to build an MVP allowing a group of users to collaborate on a spreadsheet and not have to worry about who has the latest version, or why the formula in cell B12 in this spreadsheet comes to $12,500 while the one in that spreadsheet comes to $17,100.
The basic flow would be a user uploading a spreadsheet, then entering the email addresses of a few collaborators. These collaborators could then download the ‘master’ version from the site and make some changes. When they upload their version, the site would parse the spreadsheet and create a log of diffs between the previous and new versions. Any user would have the ability to view and download any previous version (thus allowing them to easily re-upload to revert any changes).
It’s obviously miles away from Github, but the point is to just get an MVP together. I’ve been using the roo gem for this, which is pretty good, but feels decidedly un-Ruby-like and has a few major pitfalls (e.g. doesn’t recognise formulas where the user dragged a cell to copy down a column, trouble loading Excel 97/00 XLS files made in Excel 2007+). However, I’m going to keep at it and try fixing the roo issues myself.