1. 程式人生 > >C# 合併、拆分PPT幻燈片

C# 合併、拆分PPT幻燈片

概述

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

示例要點

  1. 合併PPT幻燈片(2種方式)
    方式1:載入多個獨立的PowerPoint檔案,同時將兩個文件的資料合併後為一個新的PPT檔案
    方式2:將第1個幻燈片中指定的幻燈片資料,寫入到第2個幻燈片,並儲存為新的PPT檔案
  2. 拆分PPT幻燈片
    2.1 按每一頁拆分
    2.2 按指定拆分頁數

    工具

    Free Spire.Presentation for .NET(免費版)


    :下載安裝該控制元件後,注意在程式中新增引用Sprie.Presentation.dll(如下圖)。dll可在安裝路徑下的Bin資料夾中獲取。
    C# 合併、拆分PPT幻燈片

程式碼示例(供參考)

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

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");
        }
    }
}

完成程式碼後,除錯程式,生成文件。PPT文件合併效果如下:
合併前:
C# 合併、拆分PPT幻燈片

合併後:
C# 合併、拆分PPT幻燈片

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

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");
        }
    }
}

合併前:
C# 合併、拆分PPT幻燈片

合併後:
C# 合併、拆分PPT幻燈片

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

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文件
            }
        }
    }
}

拆分前:
C# 合併、拆分PPT幻燈片
拆分後:
C# 合併、拆分PPT幻燈片

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

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

拆分前:
C# 合併、拆分PPT幻燈片
拆分後:
C# 合併、拆分PPT幻燈片
以上是C# 合併、拆分PPT幻燈片的全部內容。
(本文完)
轉載請註明出處。