Hello, this blog has moved to here : http://blog.ericgazoni.me
, the blog on WordPress will be kept not to break links, but will not be updated anymore, see you there !
This is the first post-sickness release of the year ! \o/
Major changes include :
- bugfixes (many)
- improved documentation
- new image inclusion support, using optional dependency on PIL
- improved robustness for the charts module (still a work in progress, due to the size of the module)
- data validation module
Once again, this is the release with the most external contributions so far, I’m really happy to see people interested in making the library go further, and providing such quality code, with tests and even documentation. I can’t thank you enough.
However, several pull request remain open, for various reasons from difficulty to merge with the current state of the code, to open question on the benefits of the change. Anyway, if a pull request didn’t make it into this release, it will probably be in the next 😉
Thank you as well for reporting issues you find on the bug tracker, the issues keep piling up so I still need as much help as possible to solve them, but that also means people are using the library 😉
I have now decided to stop using the Bitbucket Wiki page and instead use the ReadTheDocs documentation mini-site, which is better structured and more readable. I tried for a few hours to hide the wiki page, but it was only causing errors while installing openpyxl using pip, so I reverted my change and the wiki is still online for the moment, but won’t be updated anymore.
Here it is, don’t hesitate to give it a try and report errors if you find any 😉
Happy coding !
I thought that I could communicate a bit more on why things haven’t seemed to move too much since my last announcement about how openpyxl development was going to rock in 2013.
In January, I turned 30, but I also became pretty sick, and what was first diagnosed as simple cold was in fact a severe viral disease, that left me and my liver in pretty bad shape. I’m now recovering from the virus (while my antibodies count is still hitting the ceiling) but for a whole month I was unable to focus for more than a few hours a day, and even then, only thanks to high doses of drugs to keep the fever at sustainable levels. I chose to invest all the time I had to do my day job and also to try my best to support my wife who is taking care of the kids (I unfortunately failed at the latter :-p).
I’m since then undergoing weekly blood analysis and have a MRI scheduled next month to see how bad my liver is and how to make it recover fully, and in the meantime I’m starting to feel better, but I’m definitely feeling like a cranky 80 years old man after 4PM, and this might last for a period ranging from a few weeks to a few months.
I’ll try to review as many pull requests as my strength enables me to in the coming days, but please bear with me, as everything will get in, but maybe not very fast 😉
First post-babies release, this is a “pull requests integration” release, plus a few fixes (including the infamous race-condition fix that was omitted in 1.5.8).
A huge effort has been put over several months to make this version work on 2.x and 3.x flavors of Python, and except a few broken tests (due to an incompatible test helper) you should be able to officially install and use the library on python 3 as of today.
I’ve noticed the important amount of open tickets on the bug tracker, and unfortunately my available time is shrinking those days due to family business 😉 I’ve set myself the goal to fix one ticket a week, which should keep me busy until 2014 (if nothing else breaks in the meantime). That’s why help is more than ever welcome on fixing bugs, and adding missing features; I’ll do my best to be more reactive in the future when it comes to pull requests (once again, all my apologies to all the great people who have submitted patches for the last six months and must have thought they would never hear a word from me).
Thanks again to all the contributors, especially the ones who have been kind enough to include unit tests in their patches, so I don’t have to spend time making sure they did not break anything ;-)Image
As I’m currently merging 2.x and 3.x branches of openpyxl, I now need to perform tests over all existing Python releases known to man. I decided to install a new Ubuntu VM to perform the the tests, but I struggled during 2.4 installation.
Tried pythonbrew, which was a very disappointing experience as nothing worked as it was supposed to.
Then I tried to build from source myself, but here again the GCC version available on ubuntu 11.10 is apparently no longer able to compile original python sources.
Here is how I did it :
- download RPM version for Fedora here : http://www.python.org/download/releases/2.4/rpms/ (direct link)
- install alien (sudo apt-get install alien)
- type the following command
$ sudo alien -i python2.4-2.4-1pydotorg.i386.rpm
Now you can type
and everything should work !
Small compatibility release this time, no big features added, see the changelog by yourself:
- [iter_worksheet] add support for calculated strings (they have a special data type for that ?)
- [strings] make sure we always use unicode strings everywhere
- [iter] fixed max row and column detection for iter reader
- [styles] fixed custom number format detection under OOCalc
However, a large effort has been made on supporting the whole python 2.4 – 2.7 range. In the past, 2.4 and 2.5 compatibilities were damaged, now it should be restored back to normal.
Once again, thanks to all the contributors for their help 😉
After a long (long) break (sorry, I eventually bought a PS3, I knew this could happen), we come back with a new version of openpyxl !
This has been requested by a few people so here is a small changelog since the last (1.5.4 version):
- Commented out the ‘scheme’ element as it appears to prevent the font name from being applied in Excel.
- [cell] added Decimal type as a numeric type (fixes #78)
- [writer] added write support for wrapped text (fixes #65)
- [cell] fixed the numeric regexp (fixes #77)
- [cell] added encoding support for data input (fixes #76)
- [excel(reader)] Added try except around loading workbook properties, so that workbooks with no properties get the default properties
- [date_time] Modified the re that deals with W3CDTF date format to allow dates without an ending Z (fixes #73)
- [cell] Altered the re for numeric in order to block out numbers with leading zeroes (fixes #70)
- [worksheet(writer)] fixed long number bug. using repr on a long number causes it to return the number with L appended. Now using str() on long numbers
- [dump] watching file descriptors to avoid a ‘too many open files’ error when dumping a large number of worksheets
So, a lot of big fixes, such as file descriptors, numerical regexps and leading zeroes, and a few improvements, like encoding support.
I’m also very happy to see an ever-increasing number of contributors and of course users 🙂 Thanks again everybody !
PS: special thanks to Yaroslav Halchenko for the late night licence checks 😉
It has been almost one full year since I started this project, and it has now reached a state where it is well suited for production, and intensively tested by an increasing number of people around the globe.
The most recent additions I’m the most proud of are the optimized reader and writer, that become stable in this version. It took around 6 months to get them working properly (the reader was the hardest actually), and now they’re here !
You can read and write workbooks of any size, with low and almost constant memory consumption (which is not the case with Excel actually).
I’m also really happy that people keep sending patches and asking for features, so the project continues to live, even when I’m not fully available to work on it.
You can get the latest version of openpyxl either with easy_install:
or from the official website.