尝试使用python在xlwt中设置单元格颜色时丢失属性错误

我正在尝试使用python的xlwt包将我的Excel电子表格的颜色更改为颜色代码数据。 这是我现在的代码:

from xlrd import open_workbook from tempfile import Temporary File from xlwt import sys import csv .... ....#Some other code style = xlwt.XFStyle() #this is the line throwing the error pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN pattern.pattern_fore_colour = xlwt.Style.colour_map['red'] pattern.pattern_fore_colour = xlwt.Style.colour_map['red'] newSheet.write(row, col, values[row - 1][col], pattern) .... ....#Some other code 

其他代码段在那里,因为它是一个比所示的更长的脚本,但这些代码段与这个问题没有关系

运行时会得到以下堆栈跟踪:

 Traceback (most recent call last): File "excel-procesor.py", line 85, in <module> newSheet.write(row, col, values[row - 1][col], pattern) File "/usr/local/lib/python2.7/dist-packages/xlwt/Worksheet.py", line 1030, in write self.row(r).write(c, label, style) File "/usr/local/lib/python2.7/dist-packages/xlwt/Row.py", line 234, in write self.__adjust_height(style) File "/usr/local/lib/python2.7/dist-packages/xlwt/Row.py", line 64, in __adjust_height twip = style.font.height AttributeError: 'Pattern' object has no attribute 'font' 

我正在使用如何更改excel单元格的背景颜色与python xlwt库? 和python xlwt设置单元格的自定义背景颜色作为指南。

根据源代码:

 xlwt.Worksheet.write(self, r, c, label='', style=<xlwt.Style.XFStyle object at 0x053AEA10>) 

write应该接受style作为参数,而不是直接的Pattern对象。

你应该尝试把你的模式对象的style和传递style作为参数:

 style.pattern = pattern newSheet.write(row, col, values[row - 1][col], style) 

我发现一些例子有用如何使用xlwt ,包括如何设置样式