首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python-pptx中的循环创建多个幻灯片,并将数据帧写入幻灯片

使用python-pptx中的循环创建多个幻灯片,并将数据帧写入幻灯片
EN

Stack Overflow用户
提问于 2019-12-24 13:49:29
回答 2查看 1.4K关注 0票数 2

我有以下代码,用于从数据帧中创建ppt:

下面是3张幻灯片的代码片段:

代码语言:javascript
复制
title_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(title_slide_layout)
slide2 = prs.slides.add_slide(title_slide_layout)
slide3 = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
title.text = "Summary Table"
title2 = slide2.shapes.title
title2.text = "New Table"
title3 = slide3.shapes.title
title3.text = "Old Table"

既然我必须创建多个这样的幻灯片,有没有办法使用循环来创建多个幻灯片,而不是一个接一个地手动创建?

此外,我正在向幻灯片中写入数据帧,如下所示:

代码语言:javascript
复制
df_to_table(slide, df1, left, top, width, height)
df_to_table(slide2, df2, left, top, width, height)
df_to_table(slide3, df3, left, top, width, height)

有没有什么办法也可以循环这个呢?

Node:我的代码工作正常,没有任何问题,只是想限制重复性任务的代码行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-25 04:03:58

这就是函数的用途,将一些重复的任务抽象为一个(函数)调用:

代码语言:javascript
复制
def add_slide(prs, layout, title):
    """Return slide newly added to `prs` using `layout` and having `title`."""
    slide = prs.slides.add_slide(layout)
    slide.shapes.title.text = title
    return slide


title_slide_layout = prs.slide_layouts[1]
slide = add_slide(prs, title_slide_layout, "Summary Table")
slide2 = add_slide(prs, title_slide_layout, "New Table")
slide3 = add_slide(prs, title_slide_layout, "Old Table")

你的第二个问题是一个完全不同的问题,我建议你单独问它。StackOverflow是围绕一次一个问题的格式设计的。

票数 1
EN

Stack Overflow用户

发布于 2019-12-24 14:03:22

不完全确定,但您可以尝试如下所示:

代码语言:javascript
复制
slide = ["slide" + str(num1)  for num1 in range(1,4)] 
df = ["df" + str(num1)  for num1 in range(1,4)]

for i in range(0,3):
    df_to_table(slide[i], df[i], left, top, width, height)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59464366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档