Sheetnode: Online spreadsheets just like regular nodes!

Originally published at OpenCraft.

Google Spreadsheets are cool, but their problem is that they are hosted at Google instead of in your intranet portal. That means that they don't integrate easily with your other Web documents, in terms of classification, indexing, permissions, etc. The API provided by Google does help there, it's true. But what about adding new features? Google Docs simply isn't open source, and therefore is not ideal.

Enter Dan Bricklin, co-author of Visicalc, the original spreadsheet application back in 1979. Dan has recently been working on SocialCalc, an open source spreadsheet engine written in Javascript. This engine is bundled with SocialText, an "Enterprise 2.0" collaboration tool, as well as the OLPC XO laptop. With these credentials, you can expect SocialCalc to be a neat piece of code. Well, it is, and it's open source!

Enter Drupal. To me, Drupal is the ultimate glue for Web technologies. Its flexible architecture allows pretty much any Web component or protocol to be integrated within a coherent framework, and that's why it powers a large percentage of the modern Web. Marketing aside, I decided to integrate SocialCalc into Drupal, and the Sheetnode module is the result. Here are some of its features:

  • Create nodes that are spreadsheets, complete with formulas and formatting
  • Refer to cells in other spreadsheet nodes
  • Use the standard Drupal search to find content inside cells
  • Save sheets as templates that can be reused when creating new spreadsheets
  • Import from / export to Microsoft Excel files
  • Export to OpenOffice.org Calc files
  • Import from Google Docs spreadsheets
  • Create views that show results in spreadsheets, complete with formulas, formatting and result expansion

This last point is the most exciting to me, as it allows for real-time reports to be created out of Drupal data. Simply create a new view, choose the Style to be "Spreadsheet", then you're shown a sheet where you place and format the fields that should be rendered, as well as the calculations needed. Invoking that view expands the results onto the sheet and you get your results!

Sheetnode is rapidly evolving. I'm excited to see it adopted as part of Drupal intranet installations. Your feedback is wanted!

Comments

Wow!

WOW! This is an amazing idea. Can't wait to try it out.