在 python-pptx 中使用循环创建多张幻灯片并将数据框写入幻灯片

Using loops in python-pptx to create multiple slides and writing dataframe to slides

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

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

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"

因为我必须创建多张这样的幻灯片,是否可以使用循环创建多张幻灯片而不是手动一张一张地创建?

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

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:我的代码运行良好,没有任何问题,只是想限制重复任务的代码行数。

不太确定,但您可以这样尝试:

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)

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

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")

你的第二个问题是一个完全不同的问题,我建议你分开问。 Whosebug 是围绕一次一个问题的格式设计的。