我正在尝试使用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'
我正在使用How to change background color of excel cell with python xlwt library?和python xlwt set custom background colour of a cell作为指南。
答案 0 :(得分:1)
根据源代码:
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)
一些examples我发现如何使用xlwt
非常有用,包括如何设置样式