我正在尝试编辑我正在幻灯片上写的图表的数据标签。我可以使用可用的方法访问datalabel的文本,但到目前为止datalabel.fill还不存在。如果将来不打算将任何变通方案添加到库中,则欢迎任何变通方法。
我已经遍历了github(https://github.com/scanny/python-pptx)中的源代码,但是datalabel类仅具有字体,has_text_frame,position,text_frame,_dLbl,_get_or_add_dLbl,_get_or_add_rich,_get_or_add_txrrich,_get_or_add_txPrrich,_get_or_add_txrex, 。没有填充或行填充方法。
我正在运行的脚本对表中的单元格执行类似的操作:
cell.fill.solid()
cell.fill.fore_color.rgb = color_list[((col>0)*1)][i%2]
我正在考虑使用如下代码复制图表系列数据标签上的功能:
label.fill.solid()
label.fill.rgb = RGBColor(0x9B,0xBB,0x59)
label.fill.alpha = Alpha(.2)
label.line.fill.solid()
label.line.rgb = RGBColor(0xF0,0xF0,0x00)
预期的输出xml应该为数据标签添加以下内容:
<c:spPr>
<a:solidFill>
<a:srgbClr val="9BBB59">
<a:alpha val="80000"/>
</a:srgbClr>
</a:solidFill>
<a:ln>
<a:solidFill>
<a:schemeClr val="F0F000"/>
</a:solidFill>
</a:ln>
</c:spPr>
不存在实际输出,因为没有直接执行此操作的方法。
答案 0 :(得分:0)
此功能尚未实现,但如果已实现 ,则它将是.format
对象上的DataLabel
属性。
通常,用户可以通过在通常直接操作基础XML的客户端代码中添加通常称为“替代功能”的“替代方法”来解决API缺口,在这种情况下,可以在其中添加<c:spPr>
子树正确的地方。
python-pptx
通常可以使您接近。在这种情况下,它可以使您进入<c:dLbl>
元素,如下所示:
data_label = chart.series[0].points[0].data_label
dLbl = data_label._dLbl
print(dLbl.xml)
._dLbl
中最重要的下划线是您暗示您正在进入内部,如果事情进展不顺利,则说明您做错了事,不是要报告的问题。
dLbl
对象是lxml.etree._Element
对象,可以使用该API进行操作。如果您在“ python-pptx解决方法功能”中进行搜索,则会找到一些示例,说明如何创建新元素并将其放置在所需位置。
任何.xml
XML元素对象上可用的python-pptx
属性在检查过程中很方便。 opc-diag
也可以方便地检查PowerPoint或python-pptx
生成的PPTX文件以进行分析或诊断。