Merge Selected Slides to a Single Presentation in C#, VB.NET

Slide cloning feature provided by Spire.Presentation enables developers to clone one or several slides within one PowerPoint presentation or among multiple presentations. By cloning slide from source presentation to target document, we can easily split a large presentation into small ones and merge multiple presentations to one presentation in reverse. This article presents how to merge selected slides from multiple PowerPoint presentations into one single presentation.

Main Steps

Step 1: Create a new PowerPoint document and remove the default blank slide.

Presentation ppt = new Presentation();
ppt.Slides.RemoveAt(0);

Step 2: Initialize two instances of Presentation class and load the sample PowerPoint file respectively.

Presentation ppt1 = new Presentation("sample_01.pptx",FileFormat.Pptx2010);
Presentation ppt2 = new Presentation("sample_02.pptx", FileFormat.Pptx2010);

Step 3: Append all slides in sample_01 to the new PowerPoint document using method Append(ISlide slide).

for (int i = 0; i < ppt1.Slides.Count; i++)
{
    ppt.Slides.Append(ppt1.Slides[i]);
}

Step 4: Append the second slide in sample_02 to the new presentation.

ppt.Slides.Append(ppt2.Slides[1]);

Step 5: Save and launch the file.

ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("result.pptx");

Output

Merge Selected Slides to a Single Presentation in C#, VB.NET

Entire Code

[C#]
using Spire.Presentation;
namespace MergeSlides
{
    class Program
    {
        static void Main(string[] args)
        {
            Presentation ppt = new Presentation();
            Presentation ppt1 = new Presentation("sample_01.pptx", FileFormat.Pptx2010);
            Presentation ppt2 = new Presentation("sample_02.pptx", FileFormat.Pptx2010);
            ppt.Slides.RemoveAt(0);
            //append all slides in ppt1 to ppt
            for (int i = 0; i < ppt1.Slides.Count; i++)
            {
                ppt.Slides.Append(ppt1.Slides[i]);
            }
            //append the second slide in ppt2 to ppt
            ppt.Slides.Append(ppt2.Slides[1]);
            //save and launch the file
            ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);
            System.Diagnostics.Process.Start("result.pptx");

            }
        }
    }
[VB.NET]
Imports Spire.Presentation
Namespace MergeSlides
	Class Program
		Private Shared Sub Main(args As String())
			Dim ppt As New Presentation()
			Dim ppt1 As New Presentation("sample_01.pptx", FileFormat.Pptx2010)
			Dim ppt2 As New Presentation("sample_02.pptx", FileFormat.Pptx2010)
			ppt.Slides.RemoveAt(0)
			'append all slides in ppt1 to ppt
			For i As Integer = 0 To ppt1.Slides.Count - 1
				ppt.Slides.Append(ppt1.Slides(i))
			Next
			'append the second slide in ppt2 to ppt
			ppt.Slides.Append(ppt2.Slides(1))
			'save and launch the file
			ppt.SaveToFile("result.pptx", FileFormat.Pptx2010)
			System.Diagnostics.Process.Start("result.pptx")

		End Sub
	End Class
End Namespace