首页 > 编程语言 >python-pptx用法

python-pptx用法

时间:2023-04-22 14:45:15浏览次数:39  
标签:pptx Inches python text chart add 用法 slide prs

from pptx import Presentation
# 创建一个新PPT文档
prs = Presentation()
# 添加幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[0])
# 保存PPT文档
prs.save('example.pptx')

from pptx.util import Inches
# 添加文本框
slide = prs.slides.add_slide(prs.slide_layouts[1])
textbox = slide.shapes.add_textbox(Inches(1), Inches(1), Inches(6), Inches(2))
# 设置文本框内容和样式
textbox.text = 'Hello World!'
textbox.fill.solid()
textbox.fill.fore_color.rgb = RGBColor(255, 0, 0)
textbox.text_frame.paragraphs[0].font.size = Pt(24)

from pptx.util import Inches
# 添加图片
slide = prs.slides.add_slide(prs.slide_layouts[1])
picture = slide.shapes.add_picture('image.jpg', Inches(1), Inches(1), Inches(6), Inches(4.5))
# 设置图片样式
picture.rotation = 45
picture.crop_left = 0.1
picture.crop_right = 0.1
picture.crop_top = 0.1
picture.crop_bottom = 0.1

from pptx.util import Inches
# 添加表格
slide = prs.slides.add_slide(prs.slide_layouts[5])
table = slide.shapes.add_table(rows=2, cols=2, left=Inches(1), top=Inches(2), width=Inches(6), height=Inches(1.5))
# 设置表格样式
table.table.cell(0, 0).text = 'Name'
table.table.cell(0, 1).text = 'Age'
table.table.cell(1, 0).text = 'John'
table.table.cell(1, 1).text = '30'
for i in range(2):
    for j in range(2):
        cell = table.table.cell(i, j)
        cell.text_frame.paragraphs[0].font.name = 'Calibri'
        cell.text_frame.paragraphs[0].font.size = Pt(12)
        cell.text_frame.paragraphs[0].font.bold = True
        cell.fill.solid()
        cell.fill.fore_color.rgb = RGBColor(255, 255, 255)
        cell.fill.background()
        cell.vertical_anchor = MSO_ANCHOR.MIDDLE
        cell.text_frame.paragraphs[0].alignment = PP_ALIGN.CENTER

from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches
# 添加图表
slide = prs.slides.add_slide(prs.slide_layouts[5])
chart_data = ChartData()
chart_data.categories = ['East', 'West', 'South', 'North']
chart_data.add_series('Series 1', (19.5, 21.4, 16.7, 19.3))
chart = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, Inches(1), Inches(2), Inches(6), Inches(4.5), chart_data).chart
# 设置图表样式
plot = chart.plots[0]
plot.has_data_labels = True
plot.data_labels.font.size = Pt(12)
plot.data_labels.font.name = 'Calibri'
plot.data_labels.font.color.rgb = RGBColor(255, 255, 255)
chart.chart_title.text_frame.text = 'Chart Title'
chart.chart_title.text_frame.paragraphs[0].font.size = Pt(16)
chart.chart_title.text_frame.paragraphs[0].font.bold = True
chart.chart_title.text_frame.paragraphs[0].font.name = 'Calibri'
chart.has_legend = False

from pptx import Presentation
from pptx.util import Inches
# 创建一个新PPT文档
prs = Presentation()
# 添加幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[1])
# 添加文本框和超链接
textbox = slide.shapes.add_textbox(Inches(1), Inches(1), Inches(6), Inches(2))
textbox.text_frame.text = 'Click here to visit Google'
textbox.text_frame.paragraphs[0].font.size = Pt(24)
textbox.text_frame.paragraphs[0].font.underline = True
textbox.text_frame.paragraphs[0].font.color.rgb = RGBColor(0, 0, 255)
hyperlink = textbox.text_frame.paragraphs[0].add_hyperlink('http://www.google.com')

from pptx import Presentation
# 创建一个新PPT文档
prs = Presentation()
# 添加第一个幻灯片
slide1 = prs.slides.add_slide(prs.slide_layouts[0])
slide1.shapes.title.text = 'Slide 1'
# 设置第一个幻灯片的转场效果
slide1.transition.transition_type = PP_TRANSITION_TYPE.FADE
# 添加第二个幻灯片
slide2 = prs.slides.add_slide(prs.slide_layouts[1])
slide2.shapes.title.text = 'Slide 2'
# 设置第二个幻灯片的转场效果
slide2.transition.transition_type = PP_TRANSITION_TYPE.CUT
# 添加第三个幻灯片
slide3 = prs.slides.add_slide(prs.slide_layouts[2])
slide3.shapes.title.text = 'Slide 3'
# 设置第三个幻灯片的转场效果
slide3.transition.transition_type = PP_TRANSITION_TYPE.DISSOLVE
# 添加动画
shape = slide3.shapes.add_shape(MSO_SHAPE.RECTANGLE, Inches(1), Inches(1), Inches(2), Inches(1))
animation = shape.animations.add_animation(MSO_ANIMATION.APPEAR)
animation.effect_timing.trigger_delay = 0
animation.effect_timing.trigger_type = MSO_ANIMATION_TRIGGER.ON_CLICK
prs.save('example.pptx')

8.读取PPT文档和内容

```python from pptx import Presentation

读取PPT文档

prs = Presentation('example.pptx')

读取幻灯片数量

print('Number of slides:', len(prs.slides))

读取幻灯片标题

for slide in prs.slides:

  print(slide.shapes.title.text)

读取文本框内容

for slide in prs.slides:

   for shape in slide.shapes:

    if shape.has_text_frame:

      print(shape.text)

标签:pptx,Inches,python,text,chart,add,用法,slide,prs
From: https://www.cnblogs.com/full-stack-linux-new/p/17343059.html

相关文章

  • email用法
    importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.mime.imageimportMIMEImage#设置发件人和收件人sender='example@gmail.com'password='password'receiver='example2@gmail.com'......
  • openpyxl高级用法
    fromopenpyxl.stylesimportFont,Alignment,PatternFill#设置字体样式font=Font(name='Calibri',size=12,bold=True,italic=False,underline='single')ws['A1'].font=font#设置单元格对齐方式alignment=Alignment(horizontal='center......
  • python-docx常用方法
    fromdocximportDocument#创建一个新文档doc=Document()#添加段落para=doc.add_paragraph('HelloWorld!')fromdocx.enum.styleimportWD_STYLE_TYPEfromdocx.enum.textimportWD_ALIGN_PARAGRAPH#添加标题title=doc.add_heading('DocumentTitle',leve......
  • python多进程1:进程池使用时的死锁问题
    一、为什么?你正在使用多进程来在多个进程中运行一些代码,但它却“卡”住了。你查看CPU使用情况,却发现没有任何进展,无法完成任何工作。到底发生了什么?在许多情况下,你只需要加上一行代码就可以解决这个问题(可以跳到最后一句尝试一下),但是首先,让我们深入探讨Python的故障以及P......
  • C语言和C++的switch语句用法
    C语言和C++的switch语句用法是相似的,但在一些细节上有所不同。在C语言中,switch语句的用法如下:switch(expression){  caseconstant1:    //dosomething    break;  caseconstant2:    //dosomething    break;  //...  ......
  • chatGPT,该如何使用python调用你的接口
    以下是chatGPT的回答:好的,这里是一些使用Python调用OpenAIAPI的基本步骤:安装openaiPython包您可以使用pip安装openai包。在终端或命令行中输入以下命令:pipinstallopenai获取API密钥在使用OpenAIAPI之前,您需要获得OpenAIAPI密钥。要获得API密钥,请访问OpenAI网......
  • MySQL 时间类型 date、datetime 和 timestamp 的用法与区别
    时间范围datetime和timestamp区别时间范围不一样,TIMESTAMP要小很多,且最大范围为2038-01-1903:14:07.999999,到期也不远了。datetime与时区无关、timestamp与时区有关。对于timestamp,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户......
  • 【python】os模块
    os即operatingsystem,os模块提供的就是各种Python程序与操作系统进行交互的接口。读写文件建议使用内置函数withopen()。导入os模块importos列出路径——os.listdir()os.listdir(path='.')列出目录下的全部路径及文件。函数返回值是一个列表,其中元素为字符串......
  • [oeasy]python0136_接收输入_input函数_字符串_str
    输入变量回忆上次内容上次研究了一行赋值多个变量a=b=5a,b=7,8 还研究了标识符的惯用法python使用的是snake_case蛇形命名法用下划线分隔开小写字母的方法这样就可以更合理地命名变量了  变量变量能变的量......
  • python加密库
    Python加密库有很多,以下是一些常见的加密库:PyCrypto:Python的加密库,提供了各种加密算法的实现,包括对称加密、公钥加密、哈希函数等。cryptography:Python的加密库,提供了各种加密算法和协议的实现,包括对称加密、公钥加密、数字签名和证书管理等。M2Crypto:Python的加密库,提供了Ope......