Which library should I use to write an XLS from Linux / Python?

11,658

Solution 1

What's wrong with xlwt?

Solution 2

+1 for xlwt. See Matt Harrison's blog for posts on how to use xlwt and how to deal with large spreadsheets. Also, check out the python-excel group on Google "If you use Python to read, write or otherwise manipulate Excel files".

Solution 3

i personally dis-advise JExcel if you intent to use anything more then very simple text to excel and vice versa.

the more advanced features are abstracted very leaky from the underlying (basically undocumented) low-level code / (documented) Excel specs.

another problem we ran into is jexcel fails fatally when encountering invalid formulas. and if you need to parse client supplied spreadsheets this is a problem.

also the new POI version support (almost) seemless both xls and xlsx at the same time.

Solution 4

I'd use JExcelApi, but only because I've used it before. Never have touched HSSF. Biggest show-stopper I can recall is JExcelApi doesn't support multiple formats in one cell (e.g. half the text in bold, the other half in italic or something like that). I think in general JExcelApi is more limited than HSSF, but the limitations never got in my way.

And yes, documentation is sparse for the interface (and nonexistent for the underlying mechanisms), but I thought it was doable...

Share:
11,658
Jeremy Dunck
Author by

Jeremy Dunck

Updated on June 16, 2022

Comments

  • Jeremy Dunck
    Jeremy Dunck about 2 years

    I'd love a good native Python library to write XLS, but it doesn't seem to exist. Happily, Jython does.

    So I'm trying to decide between jexcelapi and Apache HSSF: http://www.andykhan.com/jexcelapi/tutorial.html#writing http://poi.apache.org/hssf/quick-guide.html

    (I can't use COM automation because I'm not on Windows, and even if I was, I couldn't afford Office licenses.)

    My initial thoughts are that POI/HSSF is very thorough, but also very Java-- everything seems a bit harder than it needs to be. Good documentation, but my head hurts trying to bridge the gap between what it describes and what I need to accomplish.

    jexcepapi seems to have a simpler, nicer (for me) interface, but doesn't have very good documentation or community.

    Which would you use, and why?

  • Jeremy Dunck
    Jeremy Dunck over 15 years
    This is what gave me pause: sourceforge.net/mailarchive/… I saw various blog posts about bugs. I don't really want to hit a bug that requires me to learn a lot about the binary format-- it seems like a deep field. Agree, though, xlwt seems to win.
  • user1066101
    user1066101 over 15 years
    @Jeremy Dunck: It isn't "deep" it's a load of Microsoft crap. It's simply an awful thing. You're almost better off building an XML workbook document than trying to build a binary.
  • java_newbie
    java_newbie over 15 years
    I've used pyexcelerator, too, with great results. Anyone know if xlwt allows ordering of worksheets within the workbook?
  • user1066101
    user1066101 over 15 years
    Perhaps that's a separate question: "How do I order the pages in a xlwt workbook?"
  • dgorissen
    dgorissen about 13 years
    This is described in depth here: oreilly.com/catalog/pythonwin32/chapter/ch12.html