ANNOUNCE: xlrd 0.5.2 -- extract data from Excel spreadsheets
John Machin
sjmachin at lexicon.net
Sun Mar 19 04:27:14 EST 2006
On 19/03/2006 2:30 PM, Kent Johnson wrote:
> John Machin wrote:
>
>> On 19/03/2006 8:31 AM, Kent Johnson wrote:
>>
>>> How does xlrd compare with pyexcelerator? At a glance they look
>>> pretty similar.
>>>
>>
>> I have an obvious bias, so I'll just leave you with a not-very-PC
>> analogy to think about:
>>
>> Depending on the ambient light and the quantity of mead drunk in the
>> hall, Helen of Troy and Grendel's mum might at a glance look pretty
>> similar, too. Perhaps a more thorough investigation is needed. What
>> about your requirements: a partner for the graduation ball, or someone
>> to lift the truck off you when the jack collapses?
>
>
> That didn't shed much light. I'm interested in your biased opinion,
> certainly you must have had a reason to write a new package.
>
> I don't have current requirements for this, I'm curious.
* It's not new. First public release was on 2005-05-15. When I started
writing it, there was no pure-Python Excel reading facility available at
all. Roman Kiseliov's pyExcelerator was first announced on c.l.py.ann
on 2005-03-22 (write only) and later with an import facility on 2005-05-12.
* I wrote it because I needed to get data out of Excel spreadsheets in a
production environment. I had tried COM, ODBC, and manual save-as-CSV
and all those approaches were unsatisfactory in terms of reliability and
robustness.
* Creating Excel files: xlrd doesn't do this. If you have Python 2.4,
pyExcelerator is the best choice. The alternative is PyXLWriter which
works with Python 2.2 onwards but is no longer maintained and writes
only the older Excel 5.0 / Excel 95 file format (no Unicode support,
limited to 16K rows).
* Herewith the biased comparison:
[I've CCed Roman on this & the previous posting, by the way]
** Python versions: xlrd 2.1 to 2.4, pyExcelerator 2.4 only
** Excel file versions: xlrd 3.0 onwards, pyExcelerator 5.0 onwards [I
doubt there are many 3.0, 4S and 4W files hanging about but I had some
Excel 4.0 files so I did it as a jeu d'esprit]
** Date support: Excel stores dates as real numbers of days sort-of
since some variable date ... a long shocking story, read the xlrd docs.
xlrd puts considerable effort into examining the formats used by number
cells so that they can be classifed as date or not-date. It provides
functions for converting between Excel date numbers and datetime tuples.
** Speed: On a 3.2GHz Intel P4 with 1 GB of RAM, xlrd loads a 128 Mb
spreadsheet [yes sir, real live user data] in a little over a minute,
while pyExcelerator takes a little over 3 minutes. Taking out half of
that memory doesn't bother xlrd at all, but ...
** Memory footprint: pyExcelerator can use from 2.5 to 4 times as much
memory as xlrd.
** Docs: xlrd has docs.
Hoping that shed some light :-)
Cheers,
John
More information about the Python-list
mailing list