Python xlwt库中的set_style对于包含文本的单元格不起作用

我正在使用Python的Excel电子表格。 如果条件不被遵守,我想改变整行的背景颜色。 但是,在运行我的代码后,只有行的空单元格(不包含任何字符)的背景颜色被改变。 我的前9列包含信息,我的代码只改变从J栏到Z的背景颜色。

from xlrd import open_workbook from xlwt import Workbook, easyxf Error_Style = easyxf('pattern: pattern solid, fore_colour red;',) [...] else: w_sheet.row(row_index).set_style(Error_Style) [...] 

我想知道如果我使用easyxf的错误模式。

每当使用xlwt编写单元格时,不仅会写入该单元格的值,还会写入该单元格的样式,这会覆盖该单元格中的任何以前的样式。 你不幸的是不能只是“inheritance”行的样式。 现在,实现所需的方法是创build样式,写入受影响的行时将使用样式,并写入值的同时包含这些样式。

例如,我有一个报告,背景是白色和灰色之间交替。 虽然我想只是将所有的偶数行设置为灰色而不依赖于数值,但我必须有一对样式,并在适当的时候select合适的样式。 它是这样的:

 styles = (easyxf(), easyxf('pattern: pattern solid, fore_color gray25')) for rx, record in enumerate(records, start=1): style = styles[rx % 2] # Do your own conditional style selection here for cx, value in enumerate(record): ws.write(rx, cx, value, style) 

实际上,我不止一双风格,我有几双。 (各种不同的列有不同的数字格式,一些百分比,一些date等)所以对于我自己的情况,它比我上面显示的更复杂。 但希望能够说明我的意思是“在适当的时候select合适的风格”。