使用Python办公自动化:将文本与图表写入到PPT中,其中含有写入文本、表格及图表到PPT中的一些常用函数,还含有一些对单元格的操作函数。
代码如下:
import pptx
from pptx.util import Inches
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.enum.chart import XL_LEGEND_POSITION
# 得到演示文稿的对象
prs = pptx.Presentation()
# prs = pptx.Presentation('python_pptx_create.pptx')
# 插入一张幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[0])
prs.slides.add_slide(prs.slide_layouts[1])
prs.slides.add_slide(prs.slide_layouts[2])
# 删除幻灯片
del prs.slides._sldIdLst[1]
# 向幻灯片中插入文本框
text_a = slide.shapes.add_textbox(Inches(6), Inches(6), Inches(6), Inches(6))
text_a.text = '测试文本框'
p_a = text_a.text_frame.add_paragraph()
p_a.text = '测试段落1'
p_a.add_run().text = 'end'
# 向幻灯片中现有的元素写入文本
title_shape = slide.shapes.title
title_shape.text = '标题a'
slide.shapes.placeholders[1].text = '标题b'
# 添加表格
table = slide.shapes.add_table(3, 3, Inches(2), Inches(2), Inches(4), Inches(2)).table
# 填充内容
table.cell(1, 0).text = 'test_a'
table.cell(1, 1).text = 'test_b'
table.cell(1, 2).text = 'test_c'
table.cell(2, 0).text = 'data_a'
table.cell(2, 1).text = 'data_b'
table.cell(2, 2).text = 'data_c'
# 合并单元格
cell = table.cell(0, 0)
cell_a = table.cell(0, 2)
cell.merge(cell_a)
table.cell(0,0).text = '信息表'
# 取消合并单元格
if cell.is_merge_origin:cell.split()
# 写入图表
chart_data = CategoryChartData()
chart_data.categories = ['一月份','二月份','三月份']
chart_data.add_series('名称a', (300,600,700))
chart_data.add_series('名称b', (300,600,700))
chart_data.add_series('名称c', (300,600,700))
chart = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED,Inches(2),Inches(2),Inches(6),Inches(3),chart_data).chart
chart.has_title = True
chart.chart_title.text_frame.text = 'A季度' # 标题
chart.has_legend = True
chart.legend.position = XL_LEGEND_POSITION.RIGHT
# 保存ppt文档
prs.save('python_pptx_create.pptx')
运行结果:
欢迎大家查看作者的主页,主页中还有关于编程与算法方面的更多内容,欢迎大家相互沟通学习~