pptx-python不需要的图表标题

时间:2019-08-10 04:35:07

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

在创建带有折线图的新PowerPoint幻灯片时,即使没有要求,我仍会获得图表标题。我尝试了各种方法使用chart.has_title=Falsechart.has_text_frame = False的组合来摆脱它,但似乎没有任何效果。

当图表运行良好时,我查看了xml与现在显示不需要的标题时的xml之间的区别。除其他外,还有此<c:autoTitleDeleted val="0"/>属性。在python-pptx chart.xmlwriter源代码本身中,我将值更改为1,并且图表标题消失了,因此我认为这是此不需要的标题的根本原因–我不知道为什么现在将autoTitleDeleted元素添加到xml中来自python-pptx。

我也看到了这个问题https://github.com/scanny/python-pptx/issues/460,但是当我尝试实施此修复程序时,出现以下错误:

    autoTitleDeleted = chart_element.get_or_add_autoTitleDeleted()
AttributeError: 'CT_Chart' object has no attribute 'get_or_add_autoTitleDeleted'

我在文档的任何地方都找不到get_or_add_audoTitleDeleted方法,也没有源代码。

我还尝试通过简单地手动更改xml:

chart._element.xml = xml.replace('autoTitleDeleted val="0', 'autoTitleDeleted val="1')

但是我得到一个AttributeError: can't set attribute

所以我有3个问题:

1)我该如何解决?

2)将来,当我发现引起问题的xml时,如何手动更改它?

3)为什么要首先添加此autoTitleDeleted元素?

1 个答案:

答案 0 :(得分:1)

我会检查您的python-pptx版本。正是由于这个原因,最近才添加了此新属性。我建议升级到最新版本0.6.18,然后看看会发生什么。追溯报告未找到该属性的事实是先前版本的证据。您可以在此处查看提供该属性的代码:
https://github.com/scanny/python-pptx/blob/master/pptx/oxml/chart/chart.py#L40