C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形的方法详解

C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形的方法详解

什么是Office SmartArt?

Office SmartArt 是微软Office套件中的一种图形类型,它可以帮助用户在较短的时间内创建具有高质量的信息图形。它的能力不仅限于流程图和组织结构图,还包括算法图、漏斗图、阶段图、矩阵图、金字塔图等不同种类的图形。

如何在C# / VB.NET中创建和编辑SmartArt图形?

C# / VB.NET 实际上可以通过Office Interop来实现操作PowerPoint对象模型的目的。下面是一个简单的示例来介绍如何在PPT中创建并编辑SmartArt 图形的步骤:

  1. 导入PowerPoint和Office Interop库

C#代码:

using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;

VB.NET代码:

Imports Microsoft.Office.Interop.PowerPoint
Imports Microsoft.Office.Core
  1. 创建一个新的PowerPoint文档和幻灯片

C#代码:

Application pptApplication = new Application();
pptApplication.Visible = MsoTriState.msoTrue;

Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);
pptPresentation.Slides.Add(1, PpSlideLayout.ppLayoutTitleOnly);

VB.NET代码:

Dim pptApplication As New Application()
pptApplication.Visible = MsoTriState.msoTrue

Dim pptPresentation As Presentation = pptApplication.Presentations.Add(MsoTriState.msoTrue)
pptPresentation.Slides.Add(1, PpSlideLayout.ppLayoutTitleOnly)
  1. 在幻灯片中添加SmartArt图形

C#代码:

Slide slide = pptPresentation.Slides[1];

Shapes shapes = slide.Shapes;
Shape shape = shapes.AddSmartArt(SmartArtLayoutType.smartArtBasicBlockList);

SmartArt smartArt = shape.SmartArt;
smartArt.Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1";
smartArt.Nodes.Item(1).Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1.1";
smartArt.Nodes.Add(2, SmartArtNodePosition.smartArtNodeBelow, "Node 2");

VB.NET代码:

Dim slide As Slide = pptPresentation.Slides(1)

Dim shapes As Shapes = slide.Shapes
Dim shape As Shape = shapes.AddSmartArt(SmartArtLayoutType.smartArtBasicBlockList)

Dim smartArt As SmartArt = shape.SmartArt
smartArt.Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1"
smartArt.Nodes.Item(1).Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1.1"
smartArt.Nodes.Add(2, SmartArtNodePosition.smartArtNodeBelow, "Node 2")

在上述代码中,我们使用 Shapes 对象和 AddSmartArt 方法,在幻灯片中创建了 SmartArt 图形。我们使用 Nodes 属性获取图形中的节点,然后使用 TextFrame2 对象设置节点中的文本。

  1. 编辑SmartArt图形

C#代码:

smartArt.Nodes.Item(2).TextFrame2.TextRange.Text = "Node 2 - Updated";
smartArt.Nodes.Add(3, SmartArtNodePosition.smartArtNodeBelow, "Node 3");
smartArt.Nodes.Item(3).Nodes.Add(1, SmartArtNodePosition.smartArtNodeRight, "Node 3.1");

VB.NET代码:

smartArt.Nodes.Item(2).TextFrame2.TextRange.Text = "Node 2 - Updated"
smartArt.Nodes.Add(3, SmartArtNodePosition.smartArtNodeBelow, "Node 3")
smartArt.Nodes.Item(3).Nodes.Add(1, SmartArtNodePosition.smartArtNodeRight, "Node 3.1")

在上述代码中,我们使用返回的 SmartArt 对象,获取指定节点的 NodesTextFrame2 属性,并且对其进行更新。

示例说明

这是一个C#控制台程序来演示如何创建和编辑SmartArt图形:

using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;
using System;

namespace PowerpointSmartArtDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Application pptApplication = new Application();
            pptApplication.Visible = MsoTriState.msoTrue;

            Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);
            pptPresentation.Slides.Add(1, PpSlideLayout.ppLayoutTitleOnly);

            Slide slide = pptPresentation.Slides[1];

            Shapes shapes = slide.Shapes;
            Shape shape = shapes.AddSmartArt(SmartArtLayoutType.smartArtBasicBlockList);

            SmartArt smartArt = shape.SmartArt;
            smartArt.Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1";
            smartArt.Nodes.Item(1).Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1.1";
            smartArt.Nodes.Add(2, SmartArtNodePosition.smartArtNodeBelow, "Node 2");

            Console.WriteLine("SmartArt created successfully");
            Console.WriteLine("Press any key to update the SmartArt");
            Console.ReadKey();

            smartArt.Nodes.Item(2).TextFrame2.TextRange.Text = "Node 2 - Updated";
            smartArt.Nodes.Add(3, SmartArtNodePosition.smartArtNodeBelow, "Node 3");
            smartArt.Nodes.Item(3).Nodes.Add(1, SmartArtNodePosition.smartArtNodeRight, "Node 3.1");

            Console.WriteLine("SmartArt updated successfully");
            Console.ReadKey();

            //关闭 PowerPoint 并释放对象
            foreach (Presentation ppt in pptApplication.Presentations)
            {
                ppt.Close();
            }

            pptApplication.Quit();
        }
    }
}

这是一个VB.NET控制台程序来演示如何创建和编辑SmartArt图形:

Imports Microsoft.Office.Interop.PowerPoint
Imports Microsoft.Office.Core
Imports System

Namespace PowerpointSmartArtDemo
    Class Program
        Shared Sub Main(ByVal args As String())
            Dim pptApplication As New Application()
            pptApplication.Visible = MsoTriState.msoTrue

            Dim pptPresentation As Presentation = pptApplication.Presentations.Add(MsoTriState.msoTrue)
            pptPresentation.Slides.Add(1, PpSlideLayout.ppLayoutTitleOnly)

            Dim slide As Slide = pptPresentation.Slides(1)

            Dim shapes As Shapes = slide.Shapes
            Dim shape As Shape = shapes.AddSmartArt(SmartArtLayoutType.smartArtBasicBlockList)

            Dim smartArt As SmartArt = shape.SmartArt
            smartArt.Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1"
            smartArt.Nodes.Item(1).Nodes.Item(1).TextFrame2.TextRange.Text = "Node 1.1"
            smartArt.Nodes.Add(2, SmartArtNodePosition.smartArtNodeBelow, "Node 2")

            Console.WriteLine("SmartArt created successfully")
            Console.WriteLine("Press any key to update the SmartArt")
            Console.ReadKey()

            smartArt.Nodes.Item(2).TextFrame2.TextRange.Text = "Node 2 - Updated"
            smartArt.Nodes.Add(3, SmartArtNodePosition.smartArtNodeBelow, "Node 3")
            smartArt.Nodes.Item(3).Nodes.Add(1, SmartArtNodePosition.smartArtNodeRight, "Node 3.1")

            Console.WriteLine("SmartArt updated successfully")
            Console.ReadKey()

            '关闭 PowerPoint 并释放对象
            For Each ppt As Presentation In pptApplication.Presentations
                ppt.Close()
            Next

            pptApplication.Quit()
        End Sub
    End Class
End Namespace

这两个程序都会在PPT中创建一个基本块列表SmartArt,并在控制台中输出成功消息,然后更新SmartArt并打印另一条成功消息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形的方法详解 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • .Net Core简单使用Mvc内置的Ioc(续)

    .NET Core简单使用Mvc内置的Ioc(续) 在上一篇攻略中,我们介绍了如何在.NET Core应用程序中使用Mvc内置的Ioc容器。在本攻略中,我们将继续介绍如何使用Mvc内置的Ioc容器,并提供两个示例说明。 1. 注册服务 在.NET Core应用程序中,可以使用IServiceCollection接口的AddTransient、AddScope…

    C# 2023年5月16日
    00
  • C# FileAttributes.Hidden:表示文件或目录为隐藏文件或目录

    FileAttributes.Hidden 方法是C#中用于操作文件或目录隐藏属性的方法。该方法可用于获取或设置文件或目录是否作为隐藏文件或目录。 方法作用 FileAttributes.Hidden 方法作用如下: 获取指定路径下的文件或目录是否作为隐藏文件或目录。 设置指定路径下的文件或目录是否作为隐藏文件或目录。 使用方法 获取文件/目录隐藏属性 使用…

    C# 2023年4月19日
    00
  • 实现ASP.NET无刷新下载并提示下载完成的开发思路

    实现ASP.NET无刷新下载并提示下载完成需要以下步骤: 在后端代码中,设置相应的请求响应头,使得浏览器能够正确识别并下载文件。同时需要根据用户的请求生成相应的文件流,以供下载。 示例代码: // 根据请求获取文件名 string fileName = Request["file"]; // 读取文件流 FileStream fileSt…

    C# 2023年5月31日
    00
  • asp.net 执行事务代码

    下面是 “ASP.NET 执行事务代码” 的完整攻略: 什么是事务 事务是一组可被视为单个逻辑单元的操作,其中所有操作必须成功才能提交,否则必须回滚。这意味着要么所有的 SQL 语句都被执行且提交,要么执行如果任何一个 SQL 语句出现错误则所有过程不执行,回滚到最初状态。 在 ASP.NET 中,执行事务代码指的是在使用数据库时,通过对 SQL 语句的执行…

    C# 2023年5月31日
    00
  • c#的dllimport使用方法详解

    关于“C#的DllImport使用方法详解”的攻略如下: 简介 DllImport是C#中一个用于调用非托管代码的方法。它可以让我们在C#代码中调用一些使用一些C++或Win32 API等编写的代码。 使用方法 DllImport的用法非常简单,我们只需要使用指定DllImport特性来声明一个需要调用的函数,然后在代码中直接调用该函数即可。 下面是DllI…

    C# 2023年6月1日
    00
  • Asp.Net Core用NLog记录日志操作方法

    Asp.Net Core用NLog记录日志操作方法 在Asp.Net Core中,我们可以使用NLog来记录日志。本攻略将详细介绍如何使用NLog来记录日志,并提供两个示例说明。 准备工作 在使用NLog记录日志之前,我们需要完成以下准备工作: 安装NLog。 我们可以使用NuGet包管理器来安装NLog。在Visual Studio中,我们可以右键单击项目…

    C# 2023年5月16日
    00
  • C#中abstract的用法详解

    C#中abstract的用法详解 简介 abstract 是C#中一个重要的关键字,表示抽象,它用于定义抽象类或抽象方法,是实现面向对象中重要的机制。一个抽象类不能被直接实例化,而只能作为基类被其他类继承。从抽象类继承的子类,必须实现该抽象类中的abstract方法,才能被实例化。在C#中,抽象类和抽象方法通常用于建立基础类和组件,使代码具有更强的可重用性。…

    C# 2023年5月15日
    00
  • C#如何快速释放内存的大数组详解

    标题:C#如何快速释放内存的大数组详解 介绍:在C#编程开发中,如何高效地释放内存是一个非常实际的问题。本文主要探讨C#如何快速释放内存的大数组的方法和技巧,希望能够帮助大家更好地掌握C#编程语言。 一、使用Dispose方法释放内存 在C#编程开发中,释放内存的一种常见方式是通过使用Dispose方法。Dispose方法可以释放任何继承自IDisposab…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部