PythonPPTX:如何更新或替换图表系列?
我得到KeyError: 'rId2'
在这条线上:
FSShapeChart.replace_data(chart_data)
下面是更多代码:
prs = Presentation(self.PowerPointTemplatePath)
FirstSlide = prs.slides[0]
FSShapeChart = FirstSlide.shapes[7].chart # I think this is the Chart AKA: GraphicFrame because of this:
print("Chart Type: " + str(FSShapeChart.chart_type)) # produces this: 'Chart Type: COLUMN_CLUSTERED (51)'
chart_data = ChartData()
chart_data.categories = '7/1/16', '8/1/16', '9/1/16', '10/1/16', '11/1/16', '12/1/16', '1/1/17', '2/1/17', '3/1/17', '4/1/17', '5/1/17', '6/1/17', '7/1/17'
chart_data.add_series('Pass Percent', (100,95,100,97,90.6,93.3,95,100,92.6,95,100,96.9,100))
chart_data.add_series('Goal', (95,0,0,0,0,0,0,0,0,0,0,0,95))
chart_data.add_series('Total', (30, 28, 27, 33, 32, 30, 28, 28, 36, 29, 32, 33, 27))
chart_data.add_series('Pass', (30, 27, 27, 32, 29, 28, 27, 28, 34, 29, 31, 33, 25))
# Replacing the charts data
FSShapeChart.replace_data(chart_data)
遵循以下示例:
http://python-pptx.readthedocs.io/en/latest/dev/analysis/cht-chart-data.html
我使用的版本是:
蟒蛇3.5.2
pptx:0.6.5分
完整回溯:
回溯(最近一次呼叫时间):
文件“”,第1行,在
runfile('T:/PythonScripts/Projects/ABC/Slides.py',wdir='T:/PythonScripts/Projects/ABC')
文件
“C:…\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecommize.py”,
第714行,在runfile中
execfile(文件名,命名空间)
文件
“C:…\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecommize.py”,
execfile中的第89行
exec(编译(f.read(),文件名,“exec”),命名空间)
文件“T:/PythonScripts/Projects/ABC/Slides.py”,第250行,in
动力点生成器()
文件“T/PythonScripts/Projects/ABC/Slides.py”,第92行,在init中
自我运行()
文件“T/PythonScripts/Projects/ABC/Slides.py”,第190行,RunIt
FSShapeChart.replace_data(图表数据)
文件“C:…\Anaconda3\lib\site packages\pptx\chart\chart.py”,第行
165,在替换数据中
self.\u工作簿.update_from_xlsx_blob(chart_data.xlsx_blob)
文件“C:…\Anaconda3\lib\site packages\pptx\parts\chart.py”,第行
69,在update_from_xlsx_blob中
xlsx_part=self.xlsx_部件
文件“C:…\Anaconda3\lib\site packages\pptx\parts\chart.py”,第行
85,在xlsx_部分
返回自我。图表部分。相关部分[xlsx部分]
键错误:“rId2”
最佳答案
当在Excel中创建并移动到Powerpoint的图表上使用KeyError: 'rId1'
时,我会得到这个错误并始终replace_data
。在Powerpoint中创建图表可以解决这个问题。
关于python - Python PPTX:如何更新或替换图表系列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47817819/