概述 通過合併、拆分的功能,將不同的文檔中的幻燈片進行組合形成新的的文檔,同時也可以將一個多頁的PPT文檔按頁拆分成多個不同的文檔。此功能也豐富了編程人員對PPT幻燈片的操作的選擇。下麵將分別從以下幾個要點來分別闡述通過C#來合併、拆分PPT幻燈片的方法。 示例要點 1. 合併PPT幻燈片(2種方式 ...
概述
通過合併、拆分的功能,將不同的文檔中的幻燈片進行組合形成新的的文檔,同時也可以將一個多頁的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幻燈片的全部內容。
(本文完)
轉載請註明出處。