如何在 python-pptx 中读取数据标签的文本

how to read a datalabel's text in python-pptx

我想读入给定数据标签的文本。

我尝试过的:

print(plot.series[0].points[0].data_label.text_frame.text)

上面的代码片段试图打印第一个系列的第一个点,即“16”,但它什么也没打印。

如何获取数据标签中的内容?

我想读入文本,将新内容连接到其中并将其重新插入到数据标签中。像这样

dltext = plot.series[0].points[0].data_label.text_frame.text
plot.series[0].points[0].data_label.text_frame.text = dltext + "Foo"

data_label.text_frame 仅包含明确放置的文本。否则呈现的是该数据点的值和设置 .show_valueshow_percent 等的函数。记录在此处:https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.datalabel.DataLabels

如果您想匹配向用户显示的内容,您需要复制该逻辑。

如果您想在一般情况下完成此操作,则需要做一些工作,因为您需要计算 effective 属性的值,例如 DataLabel.show_value,这将需要对该设置的样式层次结构进行逆向工程。

但 95% 的解决方案只是假设所显示的是价值并接受它。这是默认数据标签,至少对于条形图而言(饼图可能默认为百分比)。