概述

通过合并、拆分的功能,将不同的文档中的幻灯片进行组合形成新的文档,同时也可以将一个多页的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文件夹中获取。

C# 合并、拆分PPT幻灯片-LMLPHP


代码示例(供参考)


【示例1】合并PPT幻灯片(方式1)

  1. using Spire.Presentation;

  2. namespace MergeSlides_PPT
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //创建新的Presentation示例并删除默认的空白幻灯片
  9.             Presentation ppt = new Presentation();
  10.             ppt.Slides.RemoveAt(0);

  11.             //加载需要合并的两个幻灯片文档
  12.             Presentation ppt1 = new Presentation("test1.pptx", FileFormat.Pptx2010);
  13.             Presentation ppt2 = new Presentation("test2.pptx", FileFormat.Pptx2010);

  14.             //插入ppt1的数据
  15.             for (int i = 0; i < ppt1.Slides.Count; i++)
  16.             {
  17.                 ppt.Slides.Append(ppt1.Slides[i]);
  18.             }

  19.             //插入ppt2中的第一张幻灯片数据
  20.             ppt.Slides.Append(ppt2.Slides[0]);

  21.             //保存ppt文档
  22.             ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);
  23.             System.Diagnostics.Process.Start("result.pptx");
  24.         }
  25.     }
  26. }

完成代码后,调试程序,生成文档。PPT文档合并效果如下:

合并前:

C# 合并、拆分PPT幻灯片-LMLPHP
合并后:
C# 合并、拆分PPT幻灯片-LMLPHP


【示例2】合并PPT幻灯片(方式2)


  1. using Spire.Presentation;

  2. namespace MergeSlides2_PPT
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //实例化Presentation类的对象,并加载幻灯片文档
  9.             Presentation ppt1 = new Presentation("test1.pptx", FileFormat.Pptx2010);
  10.             //获取第一张幻灯片
  11.             ISlide slide = ppt1.Slides[0];

  12.             //加载第二个PowerPoint示例文档
  13.             Presentation ppt2 = new Presentation();
  14.             ppt2.LoadFromFile("test2.pptx", FileFormat.Pptx2010);

  15.             //将ppt1中获取的第一个幻灯片数据插入到ppt2,并设置为第一页
  16.             int index = 0;
  17.             ppt2.Slides.Insert(index, slide);

  18.             //保存文档2
  19.             ppt2.SaveToFile("Merge2.pptx", FileFormat.Pptx2010);
  20.             System.Diagnostics.Process.Start("Merge2.pptx");
  21.         }
  22.     }
  23. }

合并前:

C# 合并、拆分PPT幻灯片-LMLPHP

合并后:
C# 合并、拆分PPT幻灯片-LMLPHP

【示例3】按PPT幻灯片每一页拆分

  1. using Spire.Presentation;
  2. using System;

  3. namespace SplitSlides_PPT
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             //实例化Presentation类的对象,并加载测试文档
  10.             Presentation ppt = new Presentation();
  11.             ppt.LoadFromFile("test.pptx");

  12.             //遍历文档中的所有幻灯片
  13.             for (int i = 0; i < ppt.Slides.Count; i++)
  14.             {
  15.                 Presentation newppt = new Presentation();//创建一个新的PPT文档
  16.                 newppt.Slides.RemoveAt(0);//删除新建文档中默认的第一张幻灯片
  17.                 newppt.Slides.Append(ppt.Slides[i]);//将ppt中的幻灯片按每一页添加到newppt中
  18.                 newppt.SaveToFile(String.Format("拆分{0}.pptx", i), FileFormat.Pptx2010);//保存newppt文档
  19.             }
  20.         }
  21.     }
  22. }

拆分前:

C# 合并、拆分PPT幻灯片-LMLPHP

拆分后:
C# 合并、拆分PPT幻灯片-LMLPHP


【示例4】按PPT指定页数来拆分


  1. using Spire.Presentation;
  2. using System;

  3. namespace SplitSlides2_PPT
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             //创建文档ppt加载需要拆分的文档
  10.             Presentation ppt = new Presentation();
  11.             ppt.LoadFromFile("test.pptx");

  12.             //将文档的1-2页拆分,保存为文档1
  13.             Presentation ppt1 = new Presentation();
  14.             ppt1.Slides.RemoveAt(0);
  15.             for (int i = 0; i < 2; i++)
  16.             {
  17.                 ppt1.Slides.Append(ppt.Slides[i]);
  18.             }
  19.             ppt1.SaveToFile(String.Format("Split1.pptx"), FileFormat.Pptx2010);


  20.             //将文档的3-4页拆分,保存为文档2
  21.             Presentation ppt2 = new Presentation();
  22.             ppt2.Slides.RemoveAt(0);
  23.            for (int i = 2; i < 4; i++)
  24.             {
  25.                 ppt2.Slides.Append(ppt.Slides[i]);
  26.             }
  27.             ppt2.SaveToFile(String.Format("Split2.pptx"), FileFormat.Pptx2010);


  28.             //将文档第5页拆分,保存为文档3
  29.             Presentation ppt3 = new Presentation();
  30.             ppt3.Slides.RemoveAt(0);
  31.             ppt3.Slides.Append(ppt.Slides[4]);
  32.             ppt3.SaveToFile(String.Format("Split3.pptx"), FileFormat.Pptx2010);
  33.         }
  34.     }
  35. }

拆分前:

C# 合并、拆分PPT幻灯片-LMLPHP


拆分后:

C# 合并、拆分PPT幻灯片-LMLPHP

以上是C# 合并、拆分PPT幻灯片的全部内容。

(本文完)

09-04 19:18
查看更多