Loading...
Loading...
Compare original and translation side by side
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.shapes import MSO_SHAPE
from pptx.enum.text import PP_ALIGNfrom pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.shapes import MSO_SHAPE
from pptx.enum.text import PP_ALIGNundefinedundefinedPresentation
├── slide_layouts (predefined layouts)
├── slides (individual slides)
│ ├── shapes (text, images, charts)
│ │ ├── text_frame (paragraphs)
│ │ └── table (rows, cells)
│ └── placeholders (title, content)
└── slide_masters (templates)Presentation
├── slide_layouts (预定义版式)
├── slides (单个幻灯片)
│ ├── shapes (文本、图片、图表)
│ │ ├── text_frame (段落)
│ │ └── table (行、单元格)
│ └── placeholders (标题、内容占位符)
└── slide_masters (模板)undefinedundefinedundefinedundefinedslide_layout = prs.slide_layouts[0] # Title slide
slide = prs.slides.add_slide(slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Quarterly Report"
subtitle.text = "Q4 2024 Performance Review"slide_layout = prs.slide_layouts[0] # 标题幻灯片版式
slide = prs.slides.add_slide(slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "季度报告"
subtitle.text = "2024年第四季度业绩回顾"undefinedundefinedundefinedundefinedfrom pptx.util import Inches, Pt
left = Inches(1)
top = Inches(2)
width = Inches(4)
height = Inches(1)
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.paragraphs[0]
p.text = "Custom text box"
p.font.bold = True
p.font.size = Pt(18)from pptx.util import Inches, Pt
left = Inches(1)
top = Inches(2)
width = Inches(4)
height = Inches(1)
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.paragraphs[0]
p.text = "自定义文本框"
p.font.bold = True
p.font.size = Pt(18)from pptx.enum.shapes import MSO_SHAPEfrom pptx.enum.shapes import MSO_SHAPEundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedfrom pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPEfrom pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPEundefinedundefinedfrom pptx.dml.color import RGBColor
run = p.runs[0]
run.font.name = 'Arial'
run.font.size = Pt(24)
run.font.bold = True
run.font.italic = True
run.font.color.rgb = RGBColor(0x00, 0x66, 0xCC)from pptx.dml.color import RGBColor
run = p.runs[0]
run.font.name = 'Arial'
run.font.size = Pt(24)
run.font.bold = True
run.font.italic = True
run.font.color.rgb = RGBColor(0x00, 0x66, 0xCC)from pptx.dml.color import RGBColor
shape.fill.solid()
shape.fill.fore_color.rgb = RGBColor(0x00, 0x80, 0x00)
shape.line.color.rgb = RGBColor(0x00, 0x00, 0x00)
shape.line.width = Pt(2)from pptx.dml.color import RGBColor
shape.fill.solid()
shape.fill.fore_color.rgb = RGBColor(0x00, 0x80, 0x00)
shape.line.color.rgb = RGBColor(0x00, 0x00, 0x00)
shape.line.width = Pt(2)from pptx.enum.text import PP_ALIGN
p.alignment = PP_ALIGN.CENTER # LEFT, RIGHT, JUSTIFYfrom pptx.enum.text import PP_ALIGN
p.alignment = PP_ALIGN.CENTER # LEFT, RIGHT, JUSTIFYdef create_deck(title, slides_content):
prs = Presentation()
# Title slide
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = title
# Content slides
for slide_data in slides_content:
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = slide_data['title']
body = slide.placeholders[1]
tf = body.text_frame
for i, point in enumerate(slide_data['points']):
if i == 0:
tf.text = point
else:
p = tf.add_paragraph()
p.text = point
return prsdef create_deck(title, slides_content):
prs = Presentation()
# 标题幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = title
# 内容幻灯片
for slide_data in slides_content:
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = slide_data['title']
body = slide.placeholders[1]
tf = body.text_frame
for i, point in enumerate(slide_data['points']):
if i == 0:
tf.text = point
else:
p = tf.add_paragraph()
p.text = point
return prsdef add_bar_chart(slide, title, categories, values):
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
chart_data = CategoryChartData()
chart_data.categories = categories
chart_data.add_series('Values', values)
chart = slide.shapes.add_chart(
XL_CHART_TYPE.BAR_CLUSTERED,
Inches(1), Inches(2),
Inches(8), Inches(4),
chart_data
).chart
chart.chart_title.text_frame.text = title
return chartdef add_bar_chart(slide, title, categories, values):
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
chart_data = CategoryChartData()
chart_data.categories = categories
chart_data.add_series('数值', values)
chart = slide.shapes.add_chart(
XL_CHART_TYPE.BAR_CLUSTERED,
Inches(1), Inches(2),
Inches(8), Inches(4),
chart_data
).chart
chart.chart_title.text_frame.text = title
return chartfrom pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()undefinedundefinedfrom pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()undefinedundefinedpip install python-pptxpip install python-pptx