Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以使用openpyxl将图表模板应用于Excel图表?_Python_Openpyxl - Fatal编程技术网

Python 是否可以使用openpyxl将图表模板应用于Excel图表?

Python 是否可以使用openpyxl将图表模板应用于Excel图表?,python,openpyxl,Python,Openpyxl,我正在尝试在Excel中自动创建一些图表。它们需要根据特定的主题设计样式 使用openpyxl,如何将模板应用于图表?我在文档中找不到任何东西,或者通过搜索Github回购协议也找不到任何东西。我错过什么了吗 from openpyxl import Workbook wb = Workbook() ws = wb.active for i in range(10): ws.append([i]) from openpyxl.chart import BarChart, Referen

我正在尝试在Excel中自动创建一些图表。它们需要根据特定的主题设计样式

使用openpyxl,如何将模板应用于图表?我在文档中找不到任何东西,或者通过搜索Github回购协议也找不到任何东西。我错过什么了吗

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
for i in range(10):
    ws.append([i])

from openpyxl.chart import BarChart, Reference, Series
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)

### chart.apply_template("template_loc.crtx") <-- What can go here?

ws.add_chart(chart, "E15")
wb.save("SampleChart.xlsx")
来自openpyxl导入工作簿的

wb=工作簿()
ws=wb.active
对于范围(10)内的i:
ws.append([i])
从openpyxl.chart导入条形图,参考,系列
值=参考值(ws,最小列=1,最小行=1,最大列=1,最大行=10)
chart=条形图()
图表.添加数据(值)

###chart.apply_template(“template_loc.crtx”)据我所知,它是加载
*.crtx
图表模板文件并将其应用于现有图表。但您可以尝试使用图形属性:

这就产生了:


要准确地重新创建您需要的主题可能需要一些修改。

什么是
crtx
文件?OOXML规范没有提到它们。
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference, Series
from openpyxl.chart.marker import DataPoint
from openpyxl.drawing.fill import PatternFillProperties, ColorChoice

wb = Workbook()
ws = wb.active
for i in range(10):
    ws.append([i])


values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)

# set a pattern for the whole series
series = chart.series[0]
fill =  PatternFillProperties(prst="pct5")
fill.foreground = ColorChoice(prstClr="red")
fill.background = ColorChoice(prstClr="green")
series.graphicalProperties.pattFill = fill

# set a pattern for a 6th data point (0-indexed)
pt = DataPoint(idx=5)
pt.graphicalProperties.pattFill = PatternFillProperties(prst="ltHorz")
series.dPt.append(pt)

ws.add_chart(chart, "E15")
wb.save("SampleChart.xlsx")