【发布时间】:2020-02-16 19:29:25
【问题描述】:
我正在尝试在 openpyxl 创建的图表中使用 Excel 的主题颜色。我想要主题颜色,以便在用户加载新主题时可以更新整个工作簿的颜色。
Openpyxl 具有使用 rgb 值对条形图中的系列条进行着色的功能,如下所示。
import openpyxl
wb = openpyxl.load_workbook('myBook.xlsx')
ws = wb["chartSheet"]
chart = openpyxl.chart.BarChart()
chart.type = "col"
data = Reference(ws, min_col=2, min_row=1, max_row=7, max_col=3)
cats = Reference(ws, min_col=1, min_row=2, max_row=7)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
chart.series[0].graphicalProperties.solidFill = 'FFFF66'
ws.add_chart(chart, "B2")
为了给单元格的填充颜色设置样式,有一个 openpyxl.styles.colors.Color 对象,可让您根据主题定义颜色,如下所示:openpyxl.styles.colors.Color(theme=7)
但是,用于条形图样式的对象是 openpyxl.drawing.colors 对象,它只接受 rgb 值。
绝对可以在 Excel 应用程序中使用主题颜色设置条形样式。理论上,我可以使用一些后期制作脚本来编辑保存后的 excel 文件的原始 xml,但这将是非常低效的。
有什么方法可以在 openpyxl 中实现这一点吗?
【问题讨论】:
标签: openpyxl