The Ruby Spreadsheet

April 22, 2009

Requests for commercial Ruby-Spreadsheet Licences

So far we got requests from the following companies for commercial, Non-GPLv3 Ruby Spreadsheet Licences:

For commercial NON-GPLv3 Licences please contact zdavatz at ywesee dot com.


March 4, 2009

Not-For-Profit Licence for Ruby-Spreadsheet

Filed under: Licence, Not For Profit, Release, Ruby, Spreadsheet — Tags: , — zdavatz @ 5:55 pm

Today we received an Email from AtomicObject regarding a free NON-GPLv3 licence for their Non-For-Profit Project SMEToolkit – that code is not OpenSource other code from AtomicObject obviously is OSS. After our first reaction of a flat denial to do so, we had some internal discussions and would be willing to provide AtomicObject with a licence for SMEToolkit under the following circumstances (and maybe more to come):

1. Where will we be credited for our work? Where in the Website and where in the source code? The term to mention would be “ywesee – the Ruby Spreadsheet” that of course would have to be linked i.e. to some new Blog entry on this Blog. Maybe even with this entry.

2. Where, in which countries, and on how many servers do you and will you run

3. What are the reasons why can not be licensed under GPLv3? We would like to state those reasons in the free license.

4. We could only grant our licence for this specific project. Other projects and clients of AtomicObject would not be allowed to use Ruby Spreadsheet under the possibly given licence.

5. We are willing to do this because we want you to see how easy it is to print a spreadsheet with our Software and of course because we want to sell additional licences to you 😉 for your other NON GPLv3 clients.

Lets see how this turns out.

February 13, 2009 Ruby Spreadsheet released

Filed under: Release, Ruby, Spreadsheet — Tags: — zdavatz @ 3:02 pm

*   Reduce warnings produced by running under ruby -w
*   Improved auto-formatting for Dates and Times
*   Honor Row, Column, Worksheet and Workbook-formats
*   Merge branch ‘master’ into HEAD
*   Only select the First Worksheet by default;a=summary

January 15, 2009

Spreadsheet 0.6.3 released

Filed under: Release, Spreadsheet — zdavatz @ 9:34 am

0.6.3 / 2009-01-14

* 1 Bugfix

* Fixes the issue reported by Corey Martella in as well as other issues engendered by the decision to always shorten Rows to the last non-nil value.

* 2 minor enhancements

* Added bin/xlsopcodes, a tool for examining Excel files

* Documents created by Spreadsheet can now be Printed in Excel and Excel-Viewer. This issue was reported by Spencer Turner in / 2008-12-18

* 1 Bugfix

* Using Spreadsheet together with ‘jcode’ could lead to broken Excel-Files Thanks to Eugene Mikhailov for tracking this one down in:

January 10, 2009

I get an error when trying to open a file with spreadsheet

Filed under: Ruby, Spreadsheet — Tags: , , — zdavatz @ 2:52 pm

Mike Potter reported that he gets an error when he try’s to open a file a file with Ruby Spreadsheet.

This is due to still having the old ParseExcel installed. You must manually uninstall that (gem uninstall parseexcel), otherwise you will run into all sorts of errors.

highlight cells and print them

Filed under: Ruby — Tags: , , , , , — zdavatz @ 2:48 pm

Another Bug-Report that came in before Christmas:

Spencer Turner reports that he can successfully write a file which can be read, in Excel, however, when he highlights cells and try’s to print them, Excel (OfficeXP on Windows XP) says it cannot find any data.

Looking at the file created in a Raw Text editor,  he does not see any BIFF text added. Once he saves it again from OpenOffice, it is there.

Update: This Bug has been solved here:;a=commitdiff;h=dc508a787f33e00dd1ca6efb88c1b4c36b08f71a

January 9, 2009

Cell all the cells of a column except the first

Filed under: Spreadsheet — Tags: , — zdavatz @ 9:21 am

Happy New Year to all of you!

We are working on the next version of Spreadsheet and squashing some bugs in the mean time. This Bug-Report comes from Corey Martella

This seems to be a Symptom of the underlying problem.

We anticipated the decision that fields that the client set to ‘nil’ (nothing) would completely be deleted from the spreadsheet. But it turns out that like that some formatting is being lost. When thinking about it, we noticed that this behavior could also be inconvenient for other cases, i.e. when a row is completed in two separate steps but after the first step ‘nil’-values still would exist at the end of the data.  Then the following fields would all be moved to the left.

Basically the goal still is to filter out empty and unformatted cells; but this has to happen later, when the file is being written.

The problem has been solved here:;a=commit;h=52755ad76fdda151564b689107ca2fbb80af3b78

December 16, 2008

Why are we using GPLv3 as the basic Licence for the Ruby Spreadsheet?

Filed under: Licence — Tags: , , — zdavatz @ 1:37 pm

This post comes on the back of where Larry Kluger is asking why we would use a licence like GPLv3 for the Ruby Spreadsheet. There are a few points noteworthy about this argument:

1. For a new project it does make sense to start with a GPLv3 Licence. Even Linus Torvalds would consider doing that. Spreadsheet is a totally new project started from 0.

2. Projects like or the Kernel are both HUGE projects in comparison to Spreadsheet. They come with thousands and millions of strings attached. These projects where started decades ago and at that time different licenses applied. They grew with the license that was doing it for them at the time they started.

3. In the 21st century Tivo, DRM and Patents play a much bigger role then they did in the 20th century.

4. GPLv3 is not perfect but it does make sense for a fresh project.

5. The author matters. Cut the developer some slack and give some code back to the community. If you do not want to do so, then just pay a small fee when somebody else does the coding for you.

December 12, 2008

14 Bug Fixes to Ruby Spreadsheet

Filed under: Release — Tags: — zdavatz @ 7:20 am

* 14 Bugfixes;a=blame;f=History.txt;hb=6ba3b8c5c3d13f0b84df74cca616777e26ecd37e

* Fixed a bug where #<boolean>! methods did not trigger a call to #row_updated
* Corrected the Row-Format in both Reader and Writer (was Biff5 for some reason)
* Populates Row-instances with @default_format, @height, @outline_level and @hidden attributes
* Fixed a Bug where Workbooks deriving from a Template-Workbook without SST could not be saved Reported in
* Improved handling of Numeric Values (writes a RK-Entry for a Float only if it can be encoded with 4 leading zeroes, and a Number-Entry for an Integer only if it cannot be encoded as an RK)
* Fixes a bug where changes to a Row were ignored if they were outside of an existing Row-Block.
* Fixes a bug where MULRK-Entries sometimes only contained a single RK
* Fixes a bug where formatting was ignored if it was applied to empty Rows Reported by Zomba Lumix in
* Fixes a bug where modifying a Row in a loaded Workbook could lead to Rows with smaller indices being set to nil. Reported by Ivan Samsonov in
* Deals with rounding-problems when calculating Time Reported by Bughunter extraordinaire Bjørn Hjelle
* Correct splitting of wide characters in SST, Reported by Michel Ziegler and by Eugene Mikhailov in
* Fix an off-by-one error in write_mulrk that caused Excel to complain that ‘Data may be lost’, reported by Emma in and by Chris Lowis in
* Read formats correctly in read_mulrk, Reported by Ivan Samsonov, Fixes that part of which is a bug. Does nothing for the disappearance of Rich-Text, formatting, which will not be addressed until 0.7.0
* Fixes a (benign?) bug, where adding text to a template-file resulted in a duplicate extsst-record.
* 2 minor enhancements
* Improved recognition of Time-Formats
* Improvement to Robustness: allow, Takes care of, Reported by David Chamberlain

December 11, 2008

Ruby Spreadsheet Licence for companies that do not want to use GPLv3

Filed under: Licence — Tags: , — zdavatz @ 8:14 am

Ruby Spreadsheet Licence Version 0.11

1. The purpose of this license is to allow the usage of the Ruby Spreadsheet Library by ywesee GmbH up to Version 1.0. The current version is All versions of the Software can be found at;a=summary

2. The reason for this licence is that does not want to use Spreadsheet under GPLv3.

3. is allowed to use above software on two servers. is allowed to use the above software within their software for their purpose according to their User-Story. According to Name Surname the User-Story is “It would form part of an ‘export these records to …’ feature on our website and as such it would sit alongside export options to PDF, CSV, HTML etc.  So it would be part of a service.”

4. is allowed to use Spreadsheet as noted under point three.

5. Except otherwise stated in this contract, is not allowed to resell, reuse or give away any version of above code under any other licence then the GPLv3.

6. will pay a onetime fee of EUR X for the usage of Spreadsheet up to Version 1.0. The fee is due once this contract has been agreed upon by both parties. The invoice will be sent to via Email.

7. ywesee GmbH will work towards fixing any bug submitted via Issues that are estimated to require more than 2 workdays to correct may be subject to a fee, which will be negotiated prior to the work.

8. The court of jurisdiction is Zürich, Switzerland.

Please note:  If a bug occurs in Version 0.9999 to Version 1.0 and you or anybody else reports that bug, then we will fix it not matter what. If a bug occurs in Version 1.01 to Version 1.02 then of course we will have to renegotiate the terms of our contract and the price for Version 1.0 up to Version 2.0.

We will not “create” a bug in Version pre 1.0 and then ask for money for Version 1.0. Version 1.0 will include many bug and Feature improvements a long way from the current version (if you look at the current Version History you can see our track Record and we will not do a realese for “money makeing reasons”).  So to cover our work we need to cover our expenses.

To see the Ruby Spreadsheet Track History, please see:

To see the Ruby Spreadsheet RoadMap, please see:

« Newer PostsOlder Posts »

Blog at