C# 合并、拆分PPT幻灯片
程序员文章站
2022-07-06 10:58:30
概述 通过合并、拆分的功能,将不同的文档中的幻灯片进行组合形成新的的文档,同时也可以将一个多页的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"); } } }
【示例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"); } } }
【示例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文档 } } } }
【示例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); } } }
以上是c# 合并、拆分ppt幻灯片的全部内容。
(本文完)
转载请注明出处。
上一篇: 入秋莲藕美味又营养
下一篇: C# 6.0 的知识梳理