2017-09-26 68 views
0

我最近将我的代码切换到了openpyxl,以利用更新工作簿的能力,并且我在背景风格方面遇到了问题。我已经使用颜色和十六进制值尝试了以下代码的几个变体,并且我总是得到相同的结果,这是黑色背景和粗体白色文本。提前致谢!openpyxl(2.4.8)风格背景麻烦;总是黑

from openpyxl.styles import NamedStyle, PatternFill, Border, Side, 
Alignment, Protection, colors, Font 

styl_hdg = NamedStyle(name="styl_hdg") 

styl_hdg.font = Font(color=colors.WHITE, bold=True) 
styl_hdg.alignment = Alignment(wrap_text=True) 
styl_hdg.fill = PatternFill(bgColor=colors.DARKGREEN, fill_type="solid") 

ws.cell(row=myrow, column=mycol).style = styl_hdg 

我也试过这个,因为有时我得到错误样式已经定义。当我将行添加到现有工作簿/工作表时。

ws.cell(row=myrow, column=mycol).font = Font(bold=True,color=colors.WHITE) 
    ws.cell(row=myrow, column=mycol).fill = 
PatternFill(fill_type="solid",bgColor=colors.DARKGREEN) 

回答

1

从OOXML规范:

此元件用于指定单元格的填充信息图案和纯色填充细胞。对于固体细胞填充(无图案),fgColor使用 。

所以你需要设置fgColor

+0

感谢信;我正在追踪其他例子。 – user3120960

+0

这是非常直观的,但这是规范。这是因为结构化图案填充具有两种颜色。反直觉地,两者都是与细胞内容相关的背景颜色。 –