如何打印 Python-pptx 中的所有图表属性
How to print all the chart properties in Python-pptx
我在 pptx 文件中有一个现有图表,我只想每天更新它的值,这些图表已经从 excel 绘制并粘贴到 pptx 中,我只想修改图表,
但我不知道图表中有多少属性,如系列、类别和标题属性。
我能够打印图表系列和类别数据,但是当我用 chart.replace_data(chart_data)
修改这些时
我收到如下错误
return self._chart_part.related_parts[xlsx_part_rId]
KeyError: 'rId4'
我将使用下面的代码打印值,
for series in chart.plots:
for i in series.categories:
cat_list.append(i)
for series in chart.series:
for value in series.values:
ser_list.append(value)
图表如下所示
我如何使用将从 excel 传递到 pptx 的更新值修改此类图表。
我怀疑问题出在 "pasting from Excel" 步骤。
您可以尝试的一件事是在图表上 right-click 并选择 "Edit values in Excel"。如果出于任何原因这不起作用,那将解释您所看到的错误。如果确实有效,请尝试保存并 运行 python-pptx 代码与保存的版本相对应。
另一种可能更可靠的解决方法是在 PowerPoint 中以本地方式重新创建图表,从添加新的 column-chart 开始并对其进行调整,直到获得此处显示的内容。然后你应该能够每天用你提到的代码更新它(尽管你的 ser_list
变量会累积图表中 all 系列的值,如果有多个).
要理解为什么会发生这种情况,重要的是要观察到 图表不一定要有 Excel 工作表 "behind" 它 。它可以,也许在这种粘贴情况下确实具有嵌入图表 XML 本身的固定文字值。 up-side 是粘贴操作不需要创建整个 Excel 电子表格,这在 cut-and-paste 上下文中可能很棘手。 down-side 是无法使用标准方法方便地更改值。
我最近没有尝试使用其中一个,所以我不知道编辑和保存数据是否会添加一个新的 Excel 从嵌入值创建的对象,但这可以解释您看到的行为。
我在 pptx 文件中有一个现有图表,我只想每天更新它的值,这些图表已经从 excel 绘制并粘贴到 pptx 中,我只想修改图表,
但我不知道图表中有多少属性,如系列、类别和标题属性。
我能够打印图表系列和类别数据,但是当我用 chart.replace_data(chart_data)
修改这些时
我收到如下错误
return self._chart_part.related_parts[xlsx_part_rId]
KeyError: 'rId4'
我将使用下面的代码打印值,
for series in chart.plots:
for i in series.categories:
cat_list.append(i)
for series in chart.series:
for value in series.values:
ser_list.append(value)
图表如下所示
我如何使用将从 excel 传递到 pptx 的更新值修改此类图表。
我怀疑问题出在 "pasting from Excel" 步骤。
您可以尝试的一件事是在图表上 right-click 并选择 "Edit values in Excel"。如果出于任何原因这不起作用,那将解释您所看到的错误。如果确实有效,请尝试保存并 运行 python-pptx 代码与保存的版本相对应。
另一种可能更可靠的解决方法是在 PowerPoint 中以本地方式重新创建图表,从添加新的 column-chart 开始并对其进行调整,直到获得此处显示的内容。然后你应该能够每天用你提到的代码更新它(尽管你的 ser_list
变量会累积图表中 all 系列的值,如果有多个).
要理解为什么会发生这种情况,重要的是要观察到 图表不一定要有 Excel 工作表 "behind" 它 。它可以,也许在这种粘贴情况下确实具有嵌入图表 XML 本身的固定文字值。 up-side 是粘贴操作不需要创建整个 Excel 电子表格,这在 cut-and-paste 上下文中可能很棘手。 down-side 是无法使用标准方法方便地更改值。
我最近没有尝试使用其中一个,所以我不知道编辑和保存数据是否会添加一个新的 Excel 从嵌入值创建的对象,但这可以解释您看到的行为。