C# 合並、拆分PPT幻燈片


概述

通過合並、拆分的功能,將不同的文檔中的幻燈片進行組合形成新的的文檔,同時也可以將一個多頁的PPT文檔按頁拆分成多個不同的文檔。此功能也豐富了編程人員對PPT幻燈片的操作的選擇。下面將分別從以下幾個要點來分別闡述通過C#來合並、拆分PPT幻燈片的方法。

示例要點

1. 合並PPT幻燈片(2種方式)

 方式1加載多個獨立的PowerPoint文件,同時將兩個文檔的數據合並后為一個新的PPT文件

 方式2將第1個幻燈片中指定的幻燈片數據,寫入到第2個幻燈片,並保存為新的PPT文件

2. 拆分PPT幻燈片

  2.1 按每一頁拆分

  2.2 按指定拆分頁數

工具

:下載安裝該控件后,注意在程序中添加引用Sprie.Presentation.dll(如下圖)。dll可在安裝路徑下的Bin文件夾中獲取。

代碼示例(供參考)

【示例1】合並PPT幻燈片(方式1)

步驟1 :新建文檔

//創建新的Presentation示例並刪除默認的空白幻燈片
Presentation ppt = new Presentation();
ppt.Slides.RemoveAt(0);

步驟2:加載2個需要合並的PPT幻燈片

Presentation ppt1 = new Presentation("test1.pptx",FileFormat.Pptx2010);
Presentation ppt2 = new Presentation("test2.pptx",FileFormat.Pptx2010);

步驟3:插入PPT數據到文檔

//插入ppt1的數據到ppt
for (int i = 0; i < ppt1.Slides.Count; i++)
{
    ppt.Slides.Append(ppt1.Slides[i]);
}

//插入ppt2中的第1張幻燈片數據到ppt
ppt.Slides.Append(ppt2.Slides[0]);

步驟4:保存文檔

ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);

完成代碼后,調試程序,生成文檔。PPT文檔合並效果如下:

合並前:

合並后:

全部代碼:

using Spire.Presentation;

namespace MergeSlides_PPT
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建新的Presentation示例並刪除默認的空白幻燈片
            Presentation ppt = new Presentation();
            ppt.Slides.RemoveAt(0);

            //加載需要合並的兩個幻燈片文檔
            Presentation ppt1 = new Presentation("test1.pptx", FileFormat.Pptx2010);
            Presentation ppt2 = new Presentation("test2.pptx", FileFormat.Pptx2010);

            //插入ppt1的數據
            for (int i = 0; i < ppt1.Slides.Count; i++)
            {
                ppt.Slides.Append(ppt1.Slides[i]);
            }

            //插入ppt2中的第一張幻燈片數據
            ppt.Slides.Append(ppt2.Slides[0]);

            //保存ppt文檔
            ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);
            System.Diagnostics.Process.Start("result.pptx");
        }
    }
}
View Code

 

【示例2】合並PPT幻燈片(方式2)

步驟1:加載幻燈片

//實例化Presentation類的對象,並加載幻燈片文檔
Presentation ppt1 = new Presentation("test1.pptx", FileFormat.Pptx2010);
//獲取第一張幻燈片
ISlide slide = ppt1.Slides[0];

//加載第二個PowerPoint示例文檔
Presentation ppt2 = new Presentation();
ppt2.LoadFromFile("test2.pptx", FileFormat.Pptx2010);

步驟2:合並數據

//將ppt1中獲取的第一個幻燈片數據插入到ppt2,並設置為第一頁
int index = 0;
ppt2.Slides.Insert(index, slide);

步驟3:保存文檔

ppt2.SaveToFile("Merge2.pptx", FileFormat.Pptx2010);

合並前:

合並后:

全部代碼:

using Spire.Presentation;

namespace MergeSlides2_PPT
{
    class Program
    {
        static void Main(string[] args)
        {
            //實例化Presentation類的對象,並加載幻燈片文檔
            Presentation ppt1 = new Presentation("test1.pptx", FileFormat.Pptx2010);
            //獲取第一張幻燈片
            ISlide slide = ppt1.Slides[0];

            //加載第二個PowerPoint示例文檔
            Presentation ppt2 = new Presentation();
            ppt2.LoadFromFile("test2.pptx", FileFormat.Pptx2010);

            //將ppt1中獲取的第一個幻燈片數據插入到ppt2,並設置為第一頁
            int index = 0;
            ppt2.Slides.Insert(index, slide);

            //保存文檔2
            ppt2.SaveToFile("Merge2.pptx", FileFormat.Pptx2010);
            System.Diagnostics.Process.Start("Merge2.pptx");
        }
    }
}
View Code

 

【示例3】按PPT幻燈片每一頁拆分

步驟1: 加載測試文檔

//實例化Presentation類的對象,並加載測試文檔
Presentation ppt = new Presentation();
ppt.LoadFromFile("test.pptx");

步驟2:拆分ppt文檔

//遍歷文檔中的所有幻燈片
for (int i = 0; i < ppt.Slides.Count; i++)
{      
    Presentation newppt = new Presentation();//創建一個新的PPT文檔
    newppt.Slides.RemoveAt(0);//刪除新建文檔中默認的第一張幻燈片
    newppt.Slides.Append(ppt.Slides[i]);//將ppt中的幻燈片按每一頁添加到newppt中
    newppt.SaveToFile(String.Format("拆分{0}.pptx", i), FileFormat.Pptx2010);//保存newppt文檔
}

拆分前:

 

拆分后:

全部代碼:

using Spire.Presentation;
using System;

namespace SplitSlides_PPT
{
    class Program
    {
        static void Main(string[] args)
        {
            //實例化Presentation類的對象,並加載測試文檔
            Presentation ppt = new Presentation();
            ppt.LoadFromFile("test.pptx");

            //遍歷文檔中的所有幻燈片
            for (int i = 0; i < ppt.Slides.Count; i++)
            {      
                Presentation newppt = new Presentation();//創建一個新的PPT文檔
                newppt.Slides.RemoveAt(0);//刪除新建文檔中默認的第一張幻燈片
                newppt.Slides.Append(ppt.Slides[i]);//將ppt中的幻燈片按每一頁添加到newppt中
                newppt.SaveToFile(String.Format("拆分{0}.pptx", i), FileFormat.Pptx2010);//保存newppt文檔
            }
        }
    }
}
View Code

【示例4】按PPT指定頁數來拆分

步驟1:加載文檔

 //創建文檔ppt加載需要拆分的文檔
 Presentation ppt = new Presentation();
 ppt.LoadFromFile("test.pptx");

步驟2:將文檔的1-2頁拆分,保存為文檔1

Presentation ppt1 = new Presentation();
ppt1.Slides.RemoveAt(0);            
for (int i = 0; i < 2; i++)
{
    ppt1.Slides.Append(ppt.Slides[i]);
}           
ppt1.SaveToFile(String.Format("Split1.pptx"), FileFormat.Pptx2010);

步驟3:將文檔的3-4頁拆分,保存為文檔2

Presentation ppt2 = new Presentation();
ppt2.Slides.RemoveAt(0);            
for (int i = 2; i < 4; i++)
{
    ppt2.Slides.Append(ppt.Slides[i]);
}
ppt2.SaveToFile(String.Format("Split2.pptx"), FileFormat.Pptx2010);

步驟 4:將文檔第5頁拆分,保存為文檔3

Presentation ppt3 = new Presentation();
ppt3.Slides.RemoveAt(0);            
ppt3.Slides.Append(ppt.Slides[4]);
ppt3.SaveToFile(String.Format("Split3.pptx"), FileFormat.Pptx2010);

拆分前:

拆分后:

 

全部代碼:

using Spire.Presentation;
using System;

namespace SplitSlides2_PPT
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建文檔ppt加載需要拆分的文檔
            Presentation ppt = new Presentation();
            ppt.LoadFromFile("test.pptx");

            //將文檔的1-2頁拆分,保存為文檔1
            Presentation ppt1 = new Presentation();
            ppt1.Slides.RemoveAt(0);            
            for (int i = 0; i < 2; i++)
            {
                ppt1.Slides.Append(ppt.Slides[i]);
            }           
            ppt1.SaveToFile(String.Format("Split1.pptx"), FileFormat.Pptx2010);

            //將文檔的3-4頁拆分,保存為文檔2
            Presentation ppt2 = new Presentation();
            ppt2.Slides.RemoveAt(0);            
            for (int i = 2; i < 4; i++)
            {
                ppt2.Slides.Append(ppt.Slides[i]);
            }
            ppt2.SaveToFile(String.Format("Split2.pptx"), FileFormat.Pptx2010);


            //將文檔第5頁拆分,保存為文檔3
            Presentation ppt3 = new Presentation();
            ppt3.Slides.RemoveAt(0);            
            ppt3.Slides.Append(ppt.Slides[4]);
            ppt3.SaveToFile(String.Format("Split3.pptx"), FileFormat.Pptx2010);
        }
    }
}
View Code

 

以上是C# 合並、拆分PPT幻燈片的全部內容。

(本文完)

轉載請注明出處。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM