EditGrid: Really Useful Web-Based Spreadsheets
I’ve used EditGrid for several projects now, including expense tracking for my new blog A House By The Park. In addition to expense tracking, EditGrid is useful for:
- Setting up company golf tournaments. Simply create a blank spreadsheet with your columns labeled, email everyone in your company the URL, and let people fill their teams themselves. EditGrid turns hours of coordination and emails in this case into about a minute of work.
- Figuring out when everyone is available for your live fantasy football draft. Again, simply label your rows, send out the URL and you’re done. No more emails flying back and forth and people forgetting what they committed to.
- Any other application where you need multiple people to enter data and there is no concern about access privileges or people screwing with the spreadsheet.
So, all of that stuff is really easy. You don’t need a tutorial to figure it out. What’s extra cool as well is that if you keep the spreadsheet open on your screen, you can see people editing it in real-time. There’s also automatic revision history in case someone messes up.
For A House By The Park though, I wanted to input my expense data into EditGrid, save it as a public read-only spreadsheet, and then suck each expense line item into the corresponding entry on my blog. In other words, if I’m writing about how a structural and sewer inspection cost $425 and $185 respectively, I want to pull that information straight from my expense spreadsheet and display it right within the blog entry.
Here’s how it’s done:
- Create your spreadsheet in EditGrid.
- In EditGrid, choose “Data > My Data Format” and then click the “Create New Data Format” button. You’re essentially going to create a new XSL template which will transform your generic spreadsheet output into semantically sound XML.
- Give your new file format an extension. It doesn’t matter what you choose. I chose “.api”. Leave every other field the way it is, but in the “XML Stylesheet” field, paste in the following:
- Your new XML file will be available at the same URL that your browser-readable spreadsheet is available at, plus the ".api" extension. In order to save having to hit editgrid.com whenever your pages get hit, set up a cronjob to pull this file every 5 minutes and save a copy to your server:
Note: Remove all instances of "REMOVEME". I had to put those in there to keep WordPress from trying to parse those functions. Weird.
- Finally, grab your now local XML and parse it into an object in PHP:
That’s it! Now you have a nice PHP XML object that you can do whatever you want with, and you have an editable spreadsheet with data that can automatically make its way on your blog. Gotta love EditGrid.
Side note: I’m sure people will inevitably ask why I don’t use Google Spreadsheets instead. The reason is simple, but probably not applicable for everyone — I’m not an engineer and Google’s API did not seem nearly as simple as EditGrid’s to me. I don’t want to worry about authentication methods, privileges, and all that stuff. I just want a spreadsheet that provides easy access to its data. For that, EditGrid is king.


but… but… having used both, Google is actually much simpler (3 clicks and your data is out there) and offer more data output option. And since you are using curl you can just do exactly the same thing :)
here’s a screenshot of the UI http://alvinwoon.com/dev/screenshot/2008-09-09_0917.png
and here’s a public data of my movie listing - http://spreadsheets.google.com/pub?key=p-CI3CQthxMupDZqHm3gCFQ&output=txt (I use tab delimited instead of xml but you can use any type of output that suits you :) )
alvin: Thanks for the tip. I’m sure Google’s implementation is plenty easy… it just didn’t look like it from the API. As for outputting to HTML, XML, and other formats with one click, EditGrid does that too I believe, but the trick for me was not so much outputting the entire spreadsheet, but outputting it in a format such that I could just use particular rows of it depending on what was in the blog entry. Nice, clean, semantic XML seemed like the best way to do this, although comma or tab delimited would of course work as well.
Actually, I misspoke. EditGrid outputs to those formats with zero clicks. You just add the appropriate extension:
http://www.editgrid.com/user/mikeindustries/House_Expenses.html
http://www.editgrid.com/user/mikeindustries/House_Expenses.xml
http://www.editgrid.com/user/mikeindustries/House_Expenses.pdf
etc etc etc
This is fantastic! Thanks for the heads up on this one.
Is there a story behind the “cost” and “actual outflow” amounts for “survey”? :)
Jason: Yeah, the “actual outflow” column is not actually related to specific line items but rather the “amount of cash which has left my wallet as of the date of the blog entry”. So for instance, where it starts to diverge is the architecture fee. I’m signed up for $49k or so but all I’ve paid so far is my first payment of $9600.
Good stuff - thanks for the tutorial
Thank you so much - I am going to use this in my business development by getting everyone in our company to use it for my benefit.
Thanks for the tutorial - although my girlfriend won’t as I’ll be playing around with Editgrid all weekend!
Thank you, very useful informations for me to manage my editgrid data.