经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C# 合并、拆分PPT幻灯片 - E-iceblue
来源:cnblogs  作者:E-iceblue  时间:2018/11/6 18:02:03  对本文有异议

概述

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

  1. //创建新的Presentation示例并删除默认的空白幻灯片
  2. Presentation ppt = new Presentation();
  3. ppt.Slides.RemoveAt(0);

步骤2:加载2个需要合并的PPT幻灯片

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

步骤3:插入PPT数据到文档

  1. //插入ppt1的数据到ppt
  2. for (int i = 0; i < ppt1.Slides.Count; i++)
  3. {
  4. ppt.Slides.Append(ppt1.Slides[i]);
  5. }
  6. //插入ppt2中的第1张幻灯片数据到ppt
  7. ppt.Slides.Append(ppt2.Slides[0]);

步骤4:保存文档

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

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

合并前:

合并后:

全部代码:

  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. }
View Code

 

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

步骤1:加载幻灯片

  1. //实例化Presentation类的对象,并加载幻灯片文档
  2. Presentation ppt1 = new Presentation("test1.pptx", FileFormat.Pptx2010);
  3. //获取第一张幻灯片
  4. ISlide slide = ppt1.Slides[0];
  5. //加载第二个PowerPoint示例文档
  6. Presentation ppt2 = new Presentation();
  7. ppt2.LoadFromFile("test2.pptx", FileFormat.Pptx2010);

步骤2:合并数据

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

步骤3:保存文档

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

合并前:

合并后:

全部代码:

  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. }
View Code

 

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

步骤1: 加载测试文档

  1. //实例化Presentation类的对象,并加载测试文档
  2. Presentation ppt = new Presentation();
  3. ppt.LoadFromFile("test.pptx");

步骤2:拆分ppt文档

  1. //遍历文档中的所有幻灯片
  2. for (int i = 0; i < ppt.Slides.Count; i++)
  3. {
  4. Presentation newppt = new Presentation();//创建一个新的PPT文档
  5. newppt.Slides.RemoveAt(0);//删除新建文档中默认的第一张幻灯片
  6. newppt.Slides.Append(ppt.Slides[i]);//将ppt中的幻灯片按每一页添加到newppt中
  7. newppt.SaveToFile(String.Format("拆分{0}.pptx", i), FileFormat.Pptx2010);//保存newppt文档
  8. }

拆分前:

 

拆分后:

全部代码:

  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. }
View Code

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

步骤1:加载文档

  1. //创建文档ppt加载需要拆分的文档
  2. Presentation ppt = new Presentation();
  3. ppt.LoadFromFile("test.pptx");

步骤2:将文档的1-2页拆分,保存为文档1

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

步骤3:将文档的3-4页拆分,保存为文档2

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

步骤 4:将文档第5页拆分,保存为文档3

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

拆分前:

拆分后:

 

全部代码:

  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. }
View Code

 

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

(本文完)

转载请注明出处。

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号