【问题标题】:How to print all the chart properties in Python-pptx如何在 Python-pptx 中打印所有图表属性
【发布时间】:2019-06-13 00:34:34
【问题描述】:

我在 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。

【问题讨论】:

    标签: python-3.x powerpoint python-pptx


    【解决方案1】:

    我怀疑问题出在“从 Excel 粘贴”步骤。

    您可以尝试的一件事是右键单击图表并选择“在 Excel 中编辑值”。如果由于任何原因这不起作用,那将解释您所看到的错误。如果确实有效,请尝试保存并针对保存的版本运行 python-pptx 代码。

    另一种可能更可靠的解决方法是在 PowerPoint 中本地重新创建图表,从添加新的柱形图开始并对其进行调整,直到您在此处看到。然后,您应该能够每天使用您提到的代码更新它(尽管您的 ser_list 变量将累积图表中 all 系列的值,如果有多个)。

    要了解为什么会发生这种情况,请务必注意图表不必“背后”有 Excel 工作表。在这种粘贴情况下,它可以并且可能确实具有嵌入在图表 XML 本身中的固定文字值。这样做的好处是粘贴操作不需要创建整个 Excel 电子表格,这在剪切和粘贴上下文中可能会很棘手。缺点是无法使用标准方法方便地更改值。

    我最近没有尝试使用其中之一,所以我不知道编辑和保存数据是否会添加一个从嵌入值创建的新 Excel 对象,但这可能解释了您所看到的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-28
      • 2011-08-23
      • 2015-11-17
      • 2011-03-03
      • 2011-07-30
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      相关资源
      最近更新 更多