C#: Split PowerPoint Presentations

PowerPoint presentations are a fundamental tool for communication across various fields. As these presentations grow in size and complexity, managing them effectively becomes crucial. One practical solution is to split larger presentations into smaller and more manageable ones. Whether for adapting presentations to specific audiences, breaking down training modules, or optimizing file sizes for distribution, the ability to split PowerPoint presentations using C# in .NET significantly enhances workflow efficiency. This article will show how to split PowerPoint presentations by slides, slide ranges, and sections with C# using Spire.Presentation for .NET.

Install Spire.Presentation for .NET

To begin with, you need to add the DLL files included in the Spire.Presentation for.NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.

PM> Install-Package Spire.Presentation

Split PowerPoint Presentations by Slides using C#

Using Spire.Presentation for .NET, developers can split a presentation into individual slide presentations by iterating through the slides in the original presentation, adding each slide to a new presentation, and then saving it.

Here are the detailed steps:

  • Create an instance of Presentation class.
  • Load a PowerPoint file using Presentation.LoadFromFile() method.
  • Iterate through the slides in the presentation:
    • Get a slide through Presentation.Slides[] property.
    • Create a new instance of Presentation class and remove the default slide using Presentation.Slides.RemoveAt(0) method.
    • Append the slide to the new presentation using Presentation.Slides.Append() method.
    • Save the new presentation using ISlide.SaveToFile() method.
  • C#
using Spire.Presentation;

namespace SplitPresentationSlide
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an instance of Presentation class
            Presentation presentation = new Presentation();

            // Load a PowerPoint presentation
            presentation.LoadFromFile("Sample.pptx");

            // Iterate through all slides
            for (int i = 0; i < presentation.Slides.Count; i++)
            {
                // Get a slide
                ISlide slide = presentation.Slides[i];
                // Create a new presentation and remove the default slide
                Presentation newPresentation = new Presentation();
                newPresentation.Slides.RemoveAt(0);
                // Append the slide to the new presentation
                newPresentation.Slides.Append(slide);
                // Save the new presentation
                newPresentation.SaveToFile("output/Presentations/Slide-" + (i +1).ToString() + ".pptx", FileFormat.Pptx2013);
                newPresentation.Dispose();
            }
            presentation.Dispose();
        }
    }
}

C#: Split PowerPoint Presentations

Split PowerPoint Presentations by Slide Ranges using C#

In addition to splitting PowerPoint presentations into individual slide presentations, developers can also split presentations into slide ranges by copying specified ranges of slides to new presentations and saving them.

Here are the detailed steps:

  • Create an instance of Presentation class.
  • Load a PowerPoint presentation using Presentation.LoadFromFile() method.
  • Create new instances of Presentation class and remove the default slides.
  • Append specified ranges of slides to the new presentations using Presentation.Slides.Append() method.
  • Save the new presentations using Presentation.SaveToFile() method.
  • C#
using Spire.Presentation;

namespace SplitPresentationSlide
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an instance of Presentation class
            Presentation presentation = new Presentation();

            // Load the original PowerPoint presentation
            presentation.LoadFromFile("Sample.pptx");

            // Create two new instances of Presentation class
            Presentation presentation1 = new Presentation();
            Presentation presentation2 = new Presentation();

            // Remove the default blank slides
            presentation1.Slides.RemoveAt(0);
            presentation2.Slides.RemoveAt(0);

            // Append specific ranges of slides to the new presentations
            for (int i = 0; i < 3; i++)
            {
                presentation1.Slides.Append(presentation.Slides[i]);
            }
            for (int i = 3; i < presentation.Slides.Count; i++)
            {
                presentation2.Slides.Append(presentation.Slides[i]);
            }

            // Save the new presentation
            presentation1.SaveToFile("output/Presentations/SLideRange1.pptx", FileFormat.Pptx2013);
            presentation2.SaveToFile("output/Presentations/SLideRange2.pptx", FileFormat.Pptx2013);

            presentation1.Dispose();
            presentation2.Dispose();
            presentation.Dispose();
        }
    }
}

C#: Split PowerPoint Presentations

Split PowerPoint Presentations by Sections using C#

Developers also can split a presentation into sections by iterating through the sections in the presentation, adding each slide within those sections to a new PowerPoint presentation, and then saving it.

Here are the detailed steps:

  • Create an instance of Presentation class and load a PowerPoint presentation using Presentation.LoadFromFile() method.
  • Iterate through the sections in the presentation:
    • Get a section through Presentation.SectionList[] property.
    • Create a new Presentation instance and remove the default slide.
    • Add a section to the new presentation with the same name using Presentation.SectionList.Append() method.
    • Get the slides in the original section using Section.GetSlides() method.
    • Iterate through the slides and add them to the new section using Presentation.SectionList[].Insert() method.
    • Save the new presentation using Presentation.SaveToFile() method.
  • C#
using Spire.Presentation;

namespace SplitPresentationSlide
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an instance of Presentation class
            Presentation presentation = new Presentation();

            // Load a PowerPoint presentation
            presentation.LoadFromFile("Sample.pptx");

            for (int i = 0; i < presentation.SectionList.Count; i++)
            {
                // Get the current section
                Section section = presentation.SectionList[i];
                // Create a new instance of Presentation class and remove the default slide
                Presentation newPresentation = new Presentation();
                newPresentation.Slides.RemoveAt(0);
                // Add a section to the new presentation
                newPresentation.SectionList.Append(section.Name);
                // Get the slides in the section
                ISlide[] slides = section.GetSlides();
                foreach (ISlide slide in slides)
                {
                    // Insert the slide to the new section in the new presentation
                    newPresentation.SectionList[0].Insert(0, slide);
                }
                // Save the new presentation
                newPresentation.SaveToFile("output/Presentations/Section-" + (i + 1).ToString() + ".pptx", FileFormat.Pptx2019);
                newPresentation.Dispose();
            }
            presentation.Dispose();
        }
    }
}

C#: Split PowerPoint Presentations

Apply for a Temporary License

If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.