I have the below code for creating ppt out of dataframes:
Below is a snippet of the code for 3 slides:
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"
Since i have to create multiple such slides is there anyway to use loops and create multiple slides instead of creating it one by one manually?
Also, I am writing dataframes to slides like this:
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)
Is there anyway to loop this too?
Node: My code is working fine without any issues, just want to limit the lines of code for repetitive tasks.
解决方案
This is what functions are for, to abstract some repetative task down to a (function) call:
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")
Your second question is an entirely different question and I recommend you ask it separately. StackOverflow is designed around a one-question-at-a-time format.