在创建带有折线图的新PowerPoint幻灯片时,即使没有要求,我仍会获得图表标题。我尝试了各种方法使用chart.has_title=False
或chart.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元素?
答案 0 :(得分:1)
我会检查您的python-pptx
版本。正是由于这个原因,最近才添加了此新属性。我建议升级到最新版本0.6.18
,然后看看会发生什么。追溯报告未找到该属性的事实是先前版本的证据。您可以在此处查看提供该属性的代码:
https://github.com/scanny/python-pptx/blob/master/pptx/oxml/chart/chart.py#L40