26

I have searched into google and found some contradiction. Does xlwt support xlsx file (MS office 2007). I heard that xlwt 0.7.4 support xlsx file. Does anyone tried xlsx file writing operation with xlwt 0.7.4

The purpose of this question is,I do not have permission to install library if I need to install I need to provide more detail info. I need to write xlsx file in python.So if anyone has done similar thing it will help to provide better inforamtion

I have looked into this wiki page. https://pypi.python.org/pypi/xlwt But did not find that it support xlsx file

or Should I use https://pypi.python.org/pypi/openpyxl for writing xlsx File

user765443
  • 1,856
  • 7
  • 31
  • 56

3 Answers3

19

openpyxl is guaranteed to write xlsx files. From a cursory read through some of the xlwt code and docs/examples, I don't think xlwt supports xlsx. If openpyxl does what you need it to do, why look elsewhere?

Edit: with xlwt version 0.7.4 I attempted to save a file as sample.xlsx. Upon attempting to open it I got a not valid error message, so no .xlsx files for now.

Cianan Sims
  • 3,419
  • 1
  • 21
  • 30
  • Ya I also did Investigation but before raising request I just want confirmation as we have already installed xlwt and need to raise new request for openpyxl – user765443 Apr 01 '13 at 07:30
  • 2
    See my edit. Excel wasn't able to open a file saved as .xlsx with xlwt. – Cianan Sims Apr 01 '13 at 07:34
16

The xlwt module doesn't support the xlsx format. The xlsx file format is completely different from the xls format supported by xlwt.

As an alternative have a look at XlsxWriter which is a Python module for creating xlsx files.

It supports a lot of Excel features. Have a look at the documentation or start with the examples.

jmcnamara
  • 38,196
  • 6
  • 90
  • 108
  • 1
    Thanks for reply.But XlsWriter can not modify existing Excel file. but ya it is good option if you need create new Excel file(Just Read from Documentation) – user765443 Apr 01 '13 at 11:15
  • 1
    Correct. XlsxWriter is an Excel writer just like xlwt. You don't mention needing to rewrite the file in your question. – jmcnamara Apr 02 '13 at 03:23
  • @user765443 Do you know any python lib. which we can modify and perform all the normal excel operations like filters and sorting into the same generate file via python script – DASADIYA CHAITANYA Nov 26 '20 at 06:50
3

2021 update: xlrd has reached End of Life (due to security concerns in the xls format). You can use openpyxl for reading and writing data. You may also use xlsxwriter for writing, if you’re writing huge files and write performance is critical. See: https://openpyxl.readthedocs.io/en/stable/performance.html

2019 update: xlwt doesn't support xlsx Format.

XlsxWriter is 100% compatible with xlsx, well-maintained and has a good reputation.

For reading xlsx files, you can use xlrd.

You can also use Pandas if you've read+write requirements and want to create graphs and charts. (Pandas internally uses XlsxWriter modules to write the files).

P.S. - The last x in xlsx stands for XML. xlsx is a zipped Open XML file. Use xlsx wherever possible. xls is the old (proprietary) format, which doesn't have some advanced features like conditional formatting or freezing col/rows etc.

Nitin Nain
  • 5,113
  • 1
  • 37
  • 51
  • 1
    though the name implies, XlsxWriter can only **write** xlsx files, you can't read or modify existing files with it – jake77 Sep 13 '19 at 08:32