欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > python+pptx:(三)添加统计图、删除指定页

python+pptx:(三)添加统计图、删除指定页

2024/11/14 13:58:55 来源:https://blog.csdn.net/JBY2020/article/details/143628259  浏览:    关键词:python+pptx:(三)添加统计图、删除指定页

目录

统计图

删除PPT页


from pptx import Presentation
from pptx.util import Cm, Inches, Mm, Pt
from pptx.dml.color import RGBColor
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE, XL_LABEL_POSITION, XL_DATA_LABEL_POSITIONfile_path = r'C:\Users\Administrator\Desktop\testfile\测试文件\test.pptx'
prs = Presentation(file_path)  # 创建PPT文件对象,没有参数为创建新的PPT,有参数表示打开已有PPT文件对象

统计图

# 设置数据对象
ct = prs.slides[6].shapes
chart_data_x = ['Q1', 'Q2', 'Q3', 'Q4']
chart_data_y1 = [2010, 988, 1085, 2588]
chart_data_y2 = [2880, 699, 1011, 2623]
chart_data_y3 = [1334, 955, 2565, 3665]
chart_data = ChartData()
chart_data.categories = chart_data_x  # 设置横轴数据
chart_data.add_series(name='一厂', values=chart_data_y1)
chart_data.add_series(name='二厂', values=chart_data_y2)
chart_data.add_series(name='三厂', values=chart_data_y3)# 添加统计图
left, top, width, height = Cm(3), Cm(5), Cm(25), Cm(12)
# new_chart = ct.add_chart(chart_type=XL_CHART_TYPE.LINE, x=left, y=top, cx=width, cy=height, chart_data=chart_data)  # chart_type图表样式,LINE为折线图
new_chart = ct.add_chart(chart_type=XL_CHART_TYPE.COLUMN_CLUSTERED, x=left, y=top, cx=width, cy=height,chart_data=chart_data) # COLUMN_CLUSTERED为柱状图# 设置统计图标题样式和整体颜色风格
get_chart = new_chart.chart
get_chart.chart_style = 20  # 整体颜色风格(取值为1-48)
get_chart.has_title = True  # 设置标题
get_chart.chart_title.text_frame.clear()  # 清除原标题
new_tile = get_chart.chart_title.text_frame.add_paragraph()
new_tile.text = '2024季度账目汇总(单位:万元)'
new_tile.font.size = Pt(20)
new_tile.font.color.rgb = RGBColor(100, 200, 50)# 设置数据节点样式
plot = get_chart.plots[0]  # 获取图表的plot
plot.has_data_labels = True  # 统计图表节点上是否显示数据
p = plot.data_labels  # 数据标签控制类
p.font.size = Pt(5)  # 测试没有用!!
p.font.color.rgb = RGBColor(80, 200, 100)  # 测试没有用!!
p.position = XL_DATA_LABEL_POSITION.CENTER  # 设置数据位置,INSIDE_END\OUTSIDE_END 等

删除PPT页

page = list(prs.slides._sldIdLst)  # 获取ppt页列表,slides 对象的源码中有私有属性sldIdLst指向幻灯片元素集合,获取幻灯片页数
prs.slides._sldIdLst.remove(page[-2])  # 删除指定页

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com