演示文稿中的 SmartArt 用于以视觉形式提供信息。有时,选择使简单的文本更具吸引力。而在其他情况下,它用于演示流程图、流程、不同实体之间的关系等。在本文中,您将学习如何使用 C# 以编程方式在 PowerPoint 演示文稿中创建 SmartArt。
- 在 PowerPoint 中创建 SmartArt 的 .NET API
- 在 PowerPoint 中创建 SmartArt 形状
- 在 PowerPoint 中访问 SmartArt 形状
- 更改 SmartArt 形状的样式 在 PowerPoint 中创建 SmartArt 的 .NET API
为了在 PowerPoint 演示文稿中使用 SmartArt,我们将使用 Aspose.Slides for .NET。它是一个强大的类库,用于创建和操作 PowerPoint 和 OpenOffice 演示文稿。您可以通过NuGet安装 API 或 下载 其 DLL。
PM> Install-Package Aspose.Slides.NET
使用 C# 在 PowerPoint 中创建 SmartArt 形状
Aspose.Slides for .NET 提供了在演示文稿中创建 SmartArt 形状的最简单方法。为了演示,让我们使用 C# 在 PowerPoint 演示文稿中从头开始创建 SmartArt 形状。
- 使用Presentation类创建一个新的演示文稿或加载一个现有的演示文稿。
- 将所需幻灯片的引用获取到ISlide对象中。
- 使用ISlide.Shapes.AddSmartArt()方法创建 SmartArt 。
- 使用Presentation.Save(String, SaveFormat)方法保存更新的演示文稿。
以下代码示例展示了如何在 PowerPoint 演示文稿中创建 SmartArt 形状。
// Create a presentation or load existing one
using (Presentation pres = new Presentation())
{
// Access the presentation slide
ISlide slide = pres.Slides[0];
// Add SmartArt Shape
ISmartArt smart = slide.Shapes.AddSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
smart.AllNodes[0].TextFrame.Text = "First Block";
smart.AllNodes[1].TextFrame.Text = "Second Block";
// Save presentation
pres.Save("SimpleSmartArt_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
以下屏幕截图显示了上述代码示例的输出。
使用 C# 在 PowerPoint 中访问 SmartArt 形状
您还可以访问现有 PowerPoint 演示文稿中的 SmartArt 形状。访问后,您可以根据需要修改它们。以下是使用 C# 访问 PowerPoint 演示文稿中的 SmartArt 形状的步骤。
- 使用Presentation类创建一个新的演示文稿或加载一个现有的演示文稿。
- 将所需幻灯片的引用获取到ISlide对象中。
- 使用ISlide.Shapes集合遍历幻灯片中的形状。
- 如果形状是ISmartArt类型,则将其引用放入ISmartArt对象中。
- 如果需要,使用ISmartArt.Layout属性过滤特定布局的 SmartArt 形状。
以下代码示例展示了如何访问 PowerPoint 演示文稿中的 SmartArt 形状。
// Load the presentation
using (Presentation pres = new Presentation("AccessSmartArtShape.pptx"))
{
// Iterate through every shape inside desired slide
foreach (IShape shape in pres.Slides[0].Shapes)
{
// Check if shape is of SmartArt type
if (shape is ISmartArt)
{
// Typecast shape to SmartArt
ISmartArt smart = (ISmartArt)shape;
System.Console.WriteLine("Shape Name:" + smart.Name);
// Checking SmartArt Layout
//if (smart.Layout == SmartArtLayoutType.BasicBlockList)
//{
// Console.WriteLine("Do some thing here....");
//}
}
}
}
使用 C# 更改 SmartArt 形状的样式
访问 SmartArt 形状后,您也可以更改其样式。以下步骤演示了如何使用 C# 更改 PowerPoint 演示文稿中 SmartArt 形状的样式。
- 使用Presentation类创建一个新的演示文稿或加载一个现有的演示文稿。
- 将所需幻灯片的引用获取到ISlide对象中。
- 使用ISlide.Shapes集合遍历幻灯片中的形状。
- 如果形状是ISmartArt类型,则将其引用放入ISmartArt对象中。
- 更改所需的样式,即ISmartArt.ColorStyle、ISmartArt.QuickStyle等。
- 使用Presentation.Save(String, SaveFormat)方法保存更新的演示文稿。
以下代码示例展示了如何更改 PowerPoint 演示文稿中 SmartArt 形状的样式。
// Load presentation
using (Presentation presentation = new Presentation("AccessSmartArtShape.pptx"))
{
// Traverse through every shape inside first slide
foreach (IShape shape in presentation.Slides[0].Shapes)
{
// Check if shape is of SmartArt type
if (shape is ISmartArt)
{
// Typecast shape to SmartArt
ISmartArt smart = (ISmartArt)shape;
// Check SmartArt style
if (smart.QuickStyle == SmartArtQuickStyleType.SimpleFill)
{
// Change SmartArt Style
smart.QuickStyle = SmartArtQuickStyleType.Cartoon;
}
// Check SmartArt color type
if (smart.ColorStyle == SmartArtColorType.ColoredFillAccent1)
{
// Change SmartArt color type
smart.ColorStyle = SmartArtColorType.ColorfulAccentColors;
}
}
}
// Save Presentation
presentation.Save("ChangeSmartArtStyle_out.pptx", SaveFormat.Pptx);
}