概述
通过合并、拆分的功能,将不同的文档中的幻灯片进行组合形成新的的文档,同时也可以将一个多页的PPT文档按页拆分成多个不同的文档。此功能也丰富了编程人员对PPT幻灯片的操作的选择。下面将分别从以下几个要点来分别阐述通过C#来合并、拆分PPT幻灯片的方法。
示例要点
- 合并PPT幻灯片(2种方式)
方式1:加载多个独立的PowerPoint文件,同时将两个文档的数据合并后为一个新的PPT文件
方式2:将第1个幻灯片中指定的幻灯片数据,写入到第2个幻灯片,并保存为新的PPT文件 - 拆分PPT幻灯片
2.1 按每一页拆分
2.2 按指定拆分页数
工具
Free Spire.Presentation for .NET(免费版)
注:下载安装该控件后,注意在程序中添加引用Sprie.Presentation.dll(如下图)。dll可在安装路径下的Bin文件夹中获取。
代码示例(供参考)
【示例1】合并PPT幻灯片(方式1)
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");
}
}
}
完成代码后,调试程序,生成文档。PPT文档合并效果如下:
合并前:
合并后:
【示例2】合并PPT幻灯片(方式2)
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幻灯片每一页拆分
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指定页数来拆分
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幻灯片的全部内容。
(本文完)
转载请注明出处。
原文地址:http://blog.51cto.com/eiceblue/2313533
时间: 2024-10-18 00:25:48