Conditional Formatting xlwt

2019-06-18 15:38发布

问题:

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?

回答1:

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()


回答2:

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.