
MS PowerPoint 演示文稿允许您创建包含文本、图像、图表、动画和其他元素的幻灯片。各种附加格式选项让您的演示文稿更具吸引力。在这篇文章中,您将了解如何以编程方式创建此类演示文稿。您将学习如何使用 C# 创建包含文本、表格、图像和图表的 PPTX 演示文稿。
- C# PowerPoint API
- 创建 PowerPoint 演示文稿
- 打开现有的 PowerPoint 演示文稿
- 将幻灯片添加到演示文稿
- 将文本添加到演示文稿的幻灯片
- 在演示文稿中创建表格
- 在演示文稿中创建图表
- 在演示文稿中添加图像
C# PowerPoint API - 免费下载
Aspose.Slides for .NET 是一个演示文稿操作 API,可让您在 .NET 应用程序中创建和操作 PowerPoint 文档。 API 提供了实现基本和高级 PowerPoint 自动化功能所需的几乎所有可能的功能。您可以 下载 API 或通过 NuGet 安装它。
Install-Package Aspose.Slides.NET
在 C# 中创建 PowerPoint 演示文稿
让我们首先使用 Aspose.Slides for .NET 创建一个空的 PowerPoint 演示文稿。以下是执行此操作的步骤。
- 创建 Presentation 类的实例。
- 使用 Presentation.Save(String, SaveFormat) 方法将其保存为 PPTX。
以下代码示例展示了如何在 C# 中创建 PowerPoint 演示文稿。
// 实例化一个表示演示文件的 Presentation 对象
using (Presentation presentation = new Presentation())
{
// 获取第一张幻灯片
ISlide slide = presentation.Slides[0];
// 向幻灯片添加内容...
// 保存演示文稿
presentation.Save("NewPresentation.pptx", SaveFormat.Pptx);
}
在 C# 中打开现有的 PowerPoint 演示文稿
您无需付出额外的努力即可打开现有的 PowerPoint 演示文稿。只需将 PPTX 文件的路径提供给 Presentation 类的构造函数即可。以下代码示例显示了如何打开现有的 PPTX 演示文稿。
// 通过将文件路径传递给 Presentation 类的构造函数来打开演示文件
Presentation pres = new Presentation("OpenPresentation.pptx");
// 打印演示文稿中的幻灯片总数
System.Console.WriteLine(pres.Slides.Count.ToString());
在 C# 中添加幻灯片到演示文稿
创建演示文稿后,您可以开始向其中添加幻灯片。以下是使用 Aspose.Slides for .NET 在演示文稿中添加幻灯片的步骤。
- 创建 Presentation 类的实例。
- 通过设置对 Presentations.Slides 属性的引用来实例化 ISlideCollection 类。
- 使用 ISlideCollection 对象公开的 Slide.AddEmptySlide(ILayoutSlide) 方法向演示文稿添加一张空幻灯片
- 使用 Presentation.Save(String, SaveFormat) 方法保存演示文件。
以下代码示例演示如何使用 C# 在 PowerPoint 演示文稿中添加幻灯片。
// 实例化表示演示文件的演示类
using (Presentation pres = new Presentation())
{
// 实例化 SlideCollection 类
ISlideCollection slds = pres.Slides;
for (int i = 0; i < pres.LayoutSlides.Count; i++)
{
// 将一张空幻灯片添加到幻灯片集合
slds.AddEmptySlide(pres.LayoutSlides[i]);
}
// 将 PPTX 文件保存到磁盘
pres.Save("EmptySlide_out.pptx", SaveFormat.Pptx);
}
使用 C# 在幻灯片中插入文本
现在我们可以向 PowerPoint 演示文稿中的幻灯片添加内容。让我们首先使用以下步骤将一段文本添加到幻灯片中。
- 使用 Presentation 类创建一个新的演示文稿。
- 获取演示文稿中幻灯片的引用。
- 在幻灯片的指定位置添加一个 IAutoShape 和 ShapeType 作为 Rectangle。
- 获取新添加的 IAutoShape 对象的引用。
- 将 TextFrame 添加到包含默认文本的自选图形。
- 将演示文稿另存为 PPTX 文件。
以下代码示例演示如何使用 C# 在演示文稿中添加文本到幻灯片。
// 实例化 PresentationEx// 实例化 PresentationEx
using (Presentation pres = new Presentation())
{
// 获取第一张幻灯片
ISlide sld = pres.Slides[0];
// 添加矩形类型的自选图形
IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);
// 将 TextFrame 添加到矩形
ashp.AddTextFrame(" ");
// 访问文本框
ITextFrame txtFrame = ashp.TextFrame;
// 为文本框创建段落对象
IParagraph para = txtFrame.Paragraphs[0];
// 为段落创建 Portion 对象
IPortion portion = para.Portions[0];
// 设置文本
portion.Text = "Aspose TextBox";
// 将演示文稿保存到磁盘
pres.Save("presentation.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
使用 C# 在演示文稿中创建表格
Aspose.Slides for .NET 提供了一种在演示文档中创建表格的简单方法。以下是它的步骤。
- 创建 Presentation 类的实例。
- 通过使用其索引获取幻灯片的引用。
- 定义具有宽度的列和具有高度的行的数组。
- 使用 IShapes 对象公开的 Slide.Shapes.AddTable() 方法向幻灯片添加表格,并获取对 ITable 实例中表格的引用。
- 遍历每个单元格以应用格式。
- 使用 Table.Rows[][].TextFrame.Text 属性向单元格添加文本。
- 将演示文稿另存为 PPTX 文件。
以下代码示例展示了如何在 PowerPoint 演示文稿的幻灯片中创建表格。
// 实例化表示 PPTX 文件的 Presentation 类
Presentation pres = new Presentation();
// 访问第一张幻灯片
ISlide sld = pres.Slides[0];
// 定义具有宽度的列和具有高度的行
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// 将表格形状添加到幻灯片
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);
// 为每个单元格设置边框格式
for (int row = 0; row < tbl.Rows.Count; row++)
{
for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
{
tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
tbl.Rows[row][cell].CellFormat.BorderTop.Width = 5;
tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.FillType = (FillType.Solid);
tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color= Color.Red;
tbl.Rows[row][cell].CellFormat.BorderBottom.Width =5;
tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.SolidFillColor.Color =Color.Red;
tbl.Rows[row][cell].CellFormat.BorderLeft.Width = 5;
tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
tbl.Rows[row][cell].CellFormat.BorderRight.Width = 5;
}
}
// 合并第 1 行的单元格 1 和 2
tbl.MergeCells(tbl.Rows[0][0], tbl.Rows[1][1], false);
// 将文本添加到合并的单元格
tbl.Rows[0][0].TextFrame.Text = "Merged Cells";
// 将 PPTX 保存到磁盘
pres.Save("table.pptx", SaveFormat.Pptx);
使用 C# 在演示文稿中创建图表
以下是使用 C# 在 PowerPoint 演示文稿中添加图表的步骤。
- 创建 Presentation 类的实例。
- 通过索引获取幻灯片的引用。
- 使用 ISlide.Shapes.AddChart(ChartType, Single, Single, Single, Single) 方法添加所需类型的图表。
- 添加图表标题。
- 访问图表数据工作表。
- 清除所有默认系列和类别。
- 添加新的系列和类别。
- 为图表系列添加新的图表数据。
- 设置图表系列的填充颜色。
- 添加图表系列标签。
- 将演示文稿另存为 PPTX 文件。
以下代码示例展示了如何使用 C# 在演示文稿中添加图表。
// 实例化表示 PPTX 文件的 Presentation 类
Presentation pres = new Presentation();
// 访问第一张幻灯片
ISlide sld = pres.Slides[0];
// 添加带有默认数据的图表
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
// 设置图表标题
// Chart.ChartTitle.TextFrameForOverriding.Text = "示例标题";
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;
// 将第一个系列设置为显示值
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;
// 设置图表数据表的索引
int defaultWorksheetIndex = 0;
// 获取图表数据工作表
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
// 删除默认生成的系列和类别
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;
// 添加新系列
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);
// 添加新类别
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
// 获取第一个图表系列
IChartSeries series = chart.ChartData.Series[0];
// 现在填充系列数据
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));
// 设置系列的填充颜色
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;
// 采取第二个图表系列
series = chart.ChartData.Series[1];
// 现在填充系列数据
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));
// 设置系列的填充颜色
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Green;
// 第一个标签将显示类别名称
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;
lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;
// 显示第三个标签的值
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";
// 使用图表保存演示文稿
pres.Save("AsposeChart_out.pptx", SaveFormat.Pptx);
在 此处 了解有关演示图表的更多信息。
在演示文稿中添加图像
以下是在演示幻灯片中添加图像的步骤。
- 使用 Presentation 类创建一个新的演示文稿。
- 使用 File.ReadAllText(String path) 方法读取 SVG 图像。
- 使用 Presentation.Slides[0].Shapes.AddPictureFrame(ShapeType shapeType, float x, float y,float width, float height, IPPImage image) 方法将图像添加到幻灯片。
- 保存演示文稿。
以下代码示例展示了如何在 C# 中将图像添加到演示文稿。
// 创建演示文稿
using (var p = new Presentation())
{
// 阅读图片
var svgContent = File.ReadAllText("image.svg");
// 将图像添加到图像集合
var emfImage = p.Images.AddFromSvg(svgContent);
// 将图像添加到幻灯片
p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, emfImage.Width, emfImage.Height, emfImage);
// 保存演示文稿
p.Save("presentation.pptx", SaveFormat.Pptx);
}
结论
在本文中,您学习了如何使用 C# 从头开始创建 PowerPoint 演示文稿。此外,您还了解了如何在新的或现有的 PPTX 演示文稿中添加幻灯片、文本、表格、图像和图表。您可以使用 文档 了解有关 API 的更多信息。
也可以看看
- 使用 C# 保护 PowerPoint PPTX 演示文稿
- 在 ASP.NET 中创建 MS PowerPoint 演示文稿
- 在 C# 中将 PowerPoint PPTX/PPT 转换为 PNG 图像
- 使用 C# 在 PowerPoint 演示文稿中设置幻灯片背景
- 使用 C# 为 PowerPoint PPTX 或 PPT 生成缩略图
- 使用 C# 将动画应用于 PowerPoint 中的文本
- 使用 C# 拆分 PowerPoint 演示文稿
提示:除了创建幻灯片或演示文稿外,Aspose.Slides 还提供 许多功能 允许您处理演示文稿。例如,Aspose 使用自己的 API 开发了 一个免费的 Microsoft PowerPoint 演示文稿在线查看器。