在PythonPPTX中使用循环创建多张幻灯片并将数据帧写入幻灯片

在PythonPPTX中使用循环创建多张幻灯片并将数据帧写入幻灯片,python,pandas,loops,dataframe,python-pptx,Python,Pandas,Loops,Dataframe,Python Pptx,我有以下用数据帧创建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

我有以下用数据帧创建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)
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)
是否也要循环这个


节点:我的代码运行良好,没有任何问题,只是想限制重复任务的代码行。

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

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

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


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

我想幻灯片选项在for循环中不起作用。我得到:
AttributeError:'str'对象没有属性“shape”
这里(我写的方式)“slide”是一个列表对象,因此shape无法工作。但是您可以在列表的索引中进行迭代。对吗?我对你的代码做了一些修改,现在它运行良好:
list of_datasets=[df1,df2,df3]list of_slides=[slide1,slide2,slide3]#对于list of_datasets中的I:#对于list of_slides中的j:#df#对于zip中的I,j(j,I,left,top,width),df to#表格(j、i、left、top、width、height)
谢谢您的帮助。谢谢您的回答。请参阅另一个问题: