概述

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

步骤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 = ; i < ppt1.Slides.Count; i++)
{
ppt.Slides.Append(ppt1.Slides[i]);
} //插入ppt2中的第1张幻灯片数据到ppt
ppt.Slides.Append(ppt2.Slides[]);

步骤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(); //加载需要合并的两个幻灯片文档
Presentation ppt1 = new Presentation("test1.pptx", FileFormat.Pptx2010);
Presentation ppt2 = new Presentation("test2.pptx", FileFormat.Pptx2010); //插入ppt1的数据
for (int i = ; i < ppt1.Slides.Count; i++)
{
ppt.Slides.Append(ppt1.Slides[i]);
} //插入ppt2中的第一张幻灯片数据
ppt.Slides.Append(ppt2.Slides[]); //保存ppt文档
ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("result.pptx");
}
}
}

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

步骤1:加载幻灯片

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

步骤2:合并数据

//将ppt1中获取的第一个幻灯片数据插入到ppt2,并设置为第一页
int index = ;
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[]; //加载第二个PowerPoint示例文档
Presentation ppt2 = new Presentation();
ppt2.LoadFromFile("test2.pptx", FileFormat.Pptx2010); //将ppt1中获取的第一个幻灯片数据插入到ppt2,并设置为第一页
int index = ;
ppt2.Slides.Insert(index, slide); //保存文档2
ppt2.SaveToFile("Merge2.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("Merge2.pptx");
}
}
}

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

步骤1: 加载测试文档

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

步骤2:拆分ppt文档

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

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

步骤1:加载文档

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

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

Presentation ppt1 = new Presentation();
ppt1.Slides.RemoveAt();
for (int i = ; i < ; 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();
for (int i = ; i < ; 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();
ppt3.Slides.Append(ppt.Slides[]);
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();
for (int i = ; i < ; 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();
for (int i = ; i < ; i++)
{
ppt2.Slides.Append(ppt.Slides[i]);
}
ppt2.SaveToFile(String.Format("Split2.pptx"), FileFormat.Pptx2010); //将文档第5页拆分,保存为文档3
Presentation ppt3 = new Presentation();
ppt3.Slides.RemoveAt();
ppt3.Slides.Append(ppt.Slides[]);
ppt3.SaveToFile(String.Format("Split3.pptx"), FileFormat.Pptx2010);
}
}
}

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

(本文完)

转载请注明出处。

C# 合并、拆分PPT幻灯片的更多相关文章

  1. Java 合并、拆分PPT幻灯片

    序 在日常使用PPT时,为了便于操作和管理文档,时常会遇到需要将PPT幻灯片进行合并或拆分的情况.本文将通过Java程序来演示如何进行上述操作. 示例要点: 1. 合并PPT幻灯片 1.1 将第一个P ...

  2. [C1] C1FlexGrid 行列增删&单元格合并拆分

    上一篇中实现了 C1FlexGrid的撤销还原功能,这篇是要仿 Excel 做一个行列删除以及单元格的自由合并拆分,楼主怕在原工程里复杂的说不清道不明,所以干脆提取出来做了一个 Demo 来说明实现过 ...

  3. 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  4. phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    转:http://www.cnblogs.com/huangcong/p/3687665.html 首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包 ...

  5. Java设置PPT幻灯片背景——纯色、渐变、图片背景

    PPT幻灯片生成时,系统默认是无色背景填充,幻灯片设计需要手动设置背景效果,可设置颜色填充或者图片背景填充.本文将对此介绍具体实现方法. 使用工具:Free Spire.Presentation fo ...

  6. 实现ppt幻灯片播放倒计时

    需求:为控制会议时间,采取ppt幻灯片播放倒计时的办法,倒计时5分钟. 分析:用EnumWindows枚举窗口,发现PPT窗口类名有三种:PP12FrameClass.MS-SDIb.screenCl ...

  7. PPT幻灯片放映不显示备注,只让备注显示在自己屏幕上-投影机 设置

    无论是老师或是讲师还是即将要演讲的人,在讲课之前一定会做好课件,到哪一页该讲哪些内容,到哪里该如何去讲等等.那么一般的讲师会将这些课件存放到哪里呢?是用个书本记载下来呢,还是直接存放到电脑上呢?其实本 ...

  8. PHPExcel-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  9. 放映PPT幻灯片演示文稿如何让演讲者备注不投影到屏幕上(转载)

    ps  files/ps.rar 放映PPT幻灯片演示文稿如何让演讲者备注不投影到屏幕上 如题,在PPT幻灯片的演示文稿中加入演讲者备注(使用PPT讲座时苦于有时会忘记一些要讲的数字,文字等),但是在 ...

随机推荐

  1. 经典卷积神经网络结构——LeNet-5、AlexNet、VGG-16

    经典卷积神经网络的结构一般满足如下表达式: 输出层 -> (卷积层+ -> 池化层?)+  -> 全连接层+ 上述公式中,“+”表示一个或者多个,“?”表示一个或者零个,如“卷积层+ ...

  2. 【JVM虚拟机】(5)---深入理解JVM-Class中常量池

    深入理解Class---常量池 一.概念 1.jvm生命周期 启动:当启动一个java程序时,一个jvm实例就诞生了,任何一个拥有main方法的class都可以作为jvm实例运行的起点. 运行:mai ...

  3. TensorFlow从1到2(六)结构化数据预处理和心脏病预测

    结构化数据的预处理 前面所展示的一些示例已经很让人兴奋.但从总体看,数据类型还是比较单一的,比如图片,比如文本. 这个单一并非指数据的类型单一,而是指数据组成的每一部分,在模型中对于结果预测的影响基本 ...

  4. Maven把项目依赖的所有jar包都打到同一个jar中

    目录 1 使用maven-shade-plugin 2 推荐: 使用maven-assembly-plugin 3 扩展: Maven安装本地jar包到本地仓库 4 扩展: 手动生成jar包 5 扩展 ...

  5. Asp.net Core 2.1新功能Generic Host(通用主机),了解一下

    什么是Generic Host ? 这是在Asp.Net Core 2.1加入了一种新的Host,现在2.1版本的Asp.Net Core中,有了两种可用的Host. Web Host –适用于托管W ...

  6. Asp.Net Core使用SignalR进行服务间调用

    网上查询过很多关于ASP.NET core使用SignalR的简单例子,但是大部分都是简易聊天功能,今天心血来潮就搞了个使用SignalR进行服务间调用的简单DEMO. 至于SignalR是什么我就不 ...

  7. 理解css之position属性

    之前css学的一直不精致而且没有细节,为了成为一个完美的前端工作人员,所以决定重新学习css的属性.当然会借鉴MDZ文档(MDZ文档)或其他博主的经验来总结.在这里会注明借鉴或引用文章的出处.侵权即删 ...

  8. 如何让用户登录Dynamics 365 Customer Engagement后自动登录到Unified Interface App?

    微软动态CRM专家罗勇 ,回复324或者20190422可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...

  9. 正向代理&反向代理 简(fu)明(za)解释

    最近写的东西越来越偏向Web程序员了··· 你想读懂本篇,就要知道什么是Web服务器——装在世界上某个机房里某台机器里某个操作系统里的一个,对外(公网或者你能访问)服务各种你需要的信息的软件! 它可以 ...

  10. 【译】MongoDb vs Mysql—以NodeJs为例

    亲爱的读者,您可能想知道为什么要写关于MongoDb和MySql这篇文章.那是因为我与NodeJs开发人员讨论在应用程序中使用哪种数据存储作为主要的数据存储方式. 我看过很多评论都在争论这个问题. 有 ...