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

Hello, Karim! Could you explain, please What I need put to this field if i have site not on local server, but on hosting. i don't know where i must use php.ini

Thank you!

You need to put /sites/all/libraries/Zend/library.

Do you know this ?

http://www.visop-dev.com/jquerysheet.html http://www.visop-dev.com/uploads/3/1/3/8/313814/jquery.sheet.html

Is there a way to do a complementary module to sheetnode with this widget ?

Thanks

orouk

Merci pour le résultat déjà obtenu par votre travail.

J'ai eu la flemme d'installer le javabridge mais même sans ça c'est déjà génial.

Je vais me laisser tenter par "Faster implementation of sheetnode import and export using pure Java classes and remove dependency on PHP/Java Bridge".

J'ai pas vu de fichier .pot dans le module.

Dommage. J'aurais bien pris en charge la traduction en français

Pensez-vous pouvoir sortir sans trop de difficulté 1 version pour D7

Encore bravo pour ce super travail

Orouk (drupal.org username)

Merci Orouk. Pour les questions techniques, il vaut mieux poster sur la page du module directement.

Que veux-tu dire par "te laisser tenter" ? Tu comptes programmer cette partie ? Ce serait genial :-)

Non désolé, je n'ai pas la compétence, en fait je suis juste impatient de l'avancée de la roadmap sur ce point. Par contre pour la traduction pas de problème.

Do you think there is a way to convert sheetnode cell data into individual nodes (ie. convert each row into a individual node)? If so, this would be a great way to quickly generate many individual nodes based on tabular data!

We have hundreds of nodes that are basically 'records', each having only 5-10 short fields. We continuously generate these records at a rate of 5-30 per day. It would be great to use sheetnode, since it is a rapid way to enter tabular data...

Thanks! Michael

The Feeds module allows node import from CSV, so I suggest using that. I am planning to integrate Sheetnode and Feeds to allow editing the records online - but that's in the future.

Thanks and great work!

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

Hello Karim i have problems with the installation of php/java bridge i hope you can help me ..

Please use the Sheetnode issue queue to post your problems.