Python生成ppt(python-pptx)N问N答(如何绘制一个没有背景的矩形框;如何绘制一个没有背景的矩形框)
文章目录
- @[toc]
- 1. **如何安装python-pptx库?**
- 2. **如何创建一个空白PPT文件?**
- 3. **如何添加幻灯片并设置布局?**
- 4. **如何添加文本内容?**
- 5. **如何插入图片?**
- 6. **如何设置动画和转场效果?**
- 9. **如何绘制一个没有背景的矩形框**
- 10. **如何绘制一个没有边框的矩形**
文章目录
- @[toc]
- 1. **如何安装python-pptx库?**
- 2. **如何创建一个空白PPT文件?**
- 3. **如何添加幻灯片并设置布局?**
- 4. **如何添加文本内容?**
- 5. **如何插入图片?**
- 6. **如何设置动画和转场效果?**
- 9. **如何绘制一个没有背景的矩形框**
- 10. **如何绘制一个没有边框的矩形**
1. 如何安装python-pptx库?
python-pptx是一个用于生成和编辑PowerPoint文件的Python库,支持文本、图片、表格、图表等多种元素的自动化操作。安装方法如下:
pip install python-pptx
注意:需确保Python环境已正确配置。
2. 如何创建一个空白PPT文件?
from pptx import Presentation# 初始化PPT对象
prs = Presentation()
prs.save("example.pptx") # 保存文件
通过Presentation()
创建空演示文稿,默认采用空白布局。
挺空白的👆
3. 如何添加幻灯片并设置布局?
PowerPoint的布局由slide_layouts
控制,索引从0开始。例如,使用标题布局(索引0):
slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)
常用布局:
- 0:标题页
- 1:标题+内容
- 6:空白页。
slide_layouts[0]指的就是这个模板👆
我们这次,建造一个blank试试
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)
第六个布局就是空白👆
4. 如何添加文本内容?
基础文本:
title = slide.shapes.title
title.text = "主标题"
subtitle = slide.placeholders[1]
subtitle.text = "副标题"
自定义文本框:
from pptx.util import Inchestext_box = slide.shapes.add_textbox(Inches(1), Inches(1), Inches(4), Inches(2))
text_frame = text_box.text_frame
text_frame.text = "自定义内容"
支持设置字体颜色、大小和对齐方式,例如:
paragraph = text_frame.add_paragraph()
paragraph.text = "红色加粗文本"
paragraph.font.bold = True
paragraph.font.color.rgb = RGBColor(255, 0, 0) # 红色
5. 如何插入图片?
img_path = "image.png"
slide.shapes.add_picture(img_path, Inches(1), Inches(3), width=Inches(4))
参数说明:
left
和top
:图片左上角坐标(以英寸为单位)width
和height
:可指定尺寸,省略则按原比例插入。
6. 如何设置动画和转场效果?
python-pptx支持通过add_effect
方法添加动画,例如:
from pptx.enum.action import PP_APPEAReffect = slide.shapes[0].add_effect(PP_APPEAR)
effect.timing.trigger_type = "OnClick" # 点击触发
转场效果可通过slide.transition
设置,如:
slide.transition.transition_type = "FADE"
```。---#### 7. **如何插入表格和图表?**
**表格**:
```python
from pptx.util import Cmrows, cols = 3, 4
table = slide.shapes.add_table(rows, cols, Cm(2), Cm(4), Cm(10), Cm(6)).table
table.cell(0, 0).text = "表头"
图表:
from pptx.chart.data import ChartDatachart_data = ChartData()
chart_data.categories = ["A", "B", "C"]
chart_data.add_series("数据", (10, 20, 30))
chart = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, Cm(2), Cm(4), Cm(10), Cm(6), chart_data).chart
```。---#### 8. **如何批量生成PPT?**
结合数据源(如Excel或数据库),动态填充内容:
```python
import pandas as pddata = pd.read_csv("data.csv")
for index, row in data.iterrows():slide = prs.slides.add_slide(prs.slide_layouts[1])title = slide.shapes.titletitle.text = row["title"]content = slide.placeholders[1]content.text = row["content"]
此方法适用于生成报告、证书等标准化文档。
9. 如何绘制一个没有背景的矩形框
from pptx.util import Inches
from pptx.enum.shapes import MSO_SHAPE# 定义矩形的位置和尺寸(以英寸为单位)
left = Inches(1)
top = Inches(1)
width = Inches(3)
height = Inches(2)# 添加矩形
rectangle = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,left, top, width, height
)fill = rectangle.fill
fill.background()prs.save("example.pptx")
10. 如何绘制一个没有边框的矩形
👆试了好久,终于成功了。
from pptx.util import Inches, Pt
from pptx.enum.shapes import MSO_SHAPEprs = Presentation()slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)# 定义矩形的位置和尺寸(以英寸为单位)
left = Inches(1)
top = Inches(1)
width = Inches(3)
height = Inches(2)# 添加矩形
rectangle = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,left, top, width, height
)line = rectangle.lineline.fill.background()prs.save("example.pptx")