如何在 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_value
和 show_percent
等的函数。记录在此处:https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.datalabel.DataLabels
如果您想匹配向用户显示的内容,您需要复制该逻辑。
如果您想在一般情况下完成此操作,则需要做一些工作,因为您需要计算 effective 属性的值,例如 DataLabel.show_value
,这将需要对该设置的样式层次结构进行逆向工程。
但 95% 的解决方案只是假设所显示的是价值并接受它。这是默认数据标签,至少对于条形图而言(饼图可能默认为百分比)。
我想读入给定数据标签的文本。
我尝试过的:
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_value
和 show_percent
等的函数。记录在此处:https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.datalabel.DataLabels
如果您想匹配向用户显示的内容,您需要复制该逻辑。
如果您想在一般情况下完成此操作,则需要做一些工作,因为您需要计算 effective 属性的值,例如 DataLabel.show_value
,这将需要对该设置的样式层次结构进行逆向工程。
但 95% 的解决方案只是假设所显示的是价值并接受它。这是默认数据标签,至少对于条形图而言(饼图可能默认为百分比)。