If you are looking to generate/create/write (but not read) excel spreadsheets from native python (read on linux or macos or even Windows!), then xlwt (a fork of pyExcelerator) is your friend. This library, (and the ancestor) is somewhat unknown, but quite good. The only real problem with using it is that documentation (and the bug I mention below), (though this blog post is pretty good) is somewhat spotty. But you can usually get around dearth of docs by reading the code that reveals that the internal model for .xls documents is quite good, and that is supports most features (sans graphing). The original MIA author did quite a good job.
I've made a cheatsheet(pdf) for these tools. Inkscape still has some issues exporting this but here's the source for it (and the formattings bad, but I thought I'd just get it out there). It's an executable cheatsheet, so if you run it (the .py not the .pdf), it will create a spreadsheet. Hopefully this is useful to some folks. I've also tried to embed docs into the code that will serve as useful hints.
Also, I'm using a factory to reuse styles and fonts, as it seems that if you define too many of them, Excel has problems and crashes (note that OOo won't manifest them and happily plugs along on the non-conforming files). Please send any feedback or comments on how this could be more useful.
Also note, this is the .xls format, not the newer xml/ISO/.xlsx stuff
Interesting; I'd wanted to use pyExcelerator in the past but was stymied by
the requirement of Python 2.5. This fork sounds promising for folks like me
stuck with 2.3.4.
Justin-
PyEx works with 2.4 (I know cause that's what I'm running). xlwt removed
the decorators so it works with 2.3....
thank you!
Thank you so much for your cheat sheet and all the info, it really helped
me :)
Hi, thanks very much for the cheatsheet!
Try out xlwt 0.7.0 from http://p
ypi.python.org/pypi/xlwt -- has new facility for creating XFs aka
styles.
Andreas' example becomes: header_style = xlwt.easyxf("font: bold
on, height 210; align: rota 90") # "orie" is BIFF 5, not BIFF8; will be
removed from xlwt; use rota instead orie on BOTH packages in ALL contexts
(old-fashioned attribute poking, Matt's gadget, easyxf). Discussion at http://groups.google.com/
group/python-excel
This cheatcheet is indeed very helpful. Many thanks.
But what is actually the main difference between xlwt and pyExcelerator ?
(why is xlwt "better"?).
I was using pyExcelerator and was quite happy with it.
I just can't get the cheatsheet.py to work can you send me the .py?
@Axel: xlwt is maintained. Check out the python-excel group at
http://groups.google.com/group/python-excel
Great cheatsheet! Maybe you want to include the flush_row_data() trick for
saving memory for large amounts of data from your brother. This was also
very important for me.
Thanks, Georg