如何使用openpyxl设置图表的绘图区域的背景颜色

时间:2017-04-10 17:42:41

标签: python charts styling openpyxl

我想使用openpyxl更改图表的背景颜色as in this example

在google小组讨论中,我找到了以下代码段:

from openpyxl.chart.shapes import GraphicalProperties 

props = GraphicalProperties(solidFill="999999") 
chart.graphical_properties = props 
chart.plot_area.graphical_properties = props

但保存到Excel文件时对图表没有任何影响。

1 个答案:

答案 0 :(得分:3)

此功能在以前版本的openpyxl中似乎已被破坏,并且自版本2.4.7起修复。要获得图片中所示的结果,您需要更改plot_area

的纯色填充颜色
from openpyxl import Workbook
from openpyxl.chart import BarChart
from openpyxl.chart.shapes import GraphicalProperties

wb = Workbook()
ws = wb.active

chart = BarChart()

props = GraphicalProperties(solidFill="999999") 
chart.plot_area.graphicalProperties = props

ws.add_chart(chart, "A1")
wb.save("bar.xlsx")

请注意:保存chart图形属性的成员对象为chart.graphical_properties,而在plot_area中,它名为plot_area.graphicalProperties - 它本身就是别名plot_area.spPr

您需要确保访问正确的成员,以创建一个在Excel文件中看起来像您期望的有效数据结构。