6

I have seen some posts that say you can NOT perform conditional formatting using xlwt, but they were rather old. I was curious if this has evolved?

I have been searching for about half a day now. Furthermore, if I con't write it directly from xlwt, can I create an .xls file containing a single cell with the conditional format I want and have xlrd read that format and paste it into the sheet I aim to produce then using xlwt?

alecxe
  • 462,703
  • 120
  • 1,088
  • 1,195
jensencl
  • 117
  • 1
  • 8
  • I am not sure if the above is completely true..See this.. http://stackoverflow.com/questions/16448882/conditionally-formatting-text-strings-from-excel-using-python – Amistad Feb 10 '14 at 16:00

2 Answers2

9

xlrd and xlwt still don't support conditional formatting. xlrd doesn't read it, xlwt doesn't write it.

There is a new and awesome module, called xlsxwriter. It does support conditional formatting out of the box. The project is active, documentation is pretty good. Plus, there are a lot of examples.

Here's an example:

from xlsxwriter.workbook import Workbook

workbook = Workbook('test.xlsx')
worksheet = workbook.add_worksheet()

worksheet.write('A1', 49)
worksheet.write('A2', 51)

format1 = workbook.add_format({'bold': 1, 'italic': 1})
worksheet.conditional_format('A1:A2', {'type': 'cell',
                                       'criteria': '>=',
                                       'value': 50,
                                       'format': format1})
workbook.close()
Ken Ho
  • 3
  • 3
alecxe
  • 462,703
  • 120
  • 1,088
  • 1,195
-1

True that xlswriter makes formatting pretty easy, but i think it can not be used for appending data tpsheets, which i feel is a big drawback.

Divya
  • 33
  • 4