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日

相关文章

  • 什么是机器视觉?

    由于当前社会人力成本越来越昂贵,机器取代人力是大势所趋,自动化的发展也随之越来越快 。当制造公司需 要一双手和一对 眼睛的时候却不得不雇佣一个人的苦恼日益加重,而传统的机器设计和电气自动化的发展,解决一双手的问题已经渐渐得到了缓解,现在就到了需要解决一双眼睛的时候,机器视觉的出现和广泛应用也随着到来。 机器视觉是计算机科学的一个重要分支,它综合了光学,机械,…

    C# 2023年4月19日
    00
  • C#实现简单的飞行棋游戏

    我们来简要讲解如何实现一个简单的飞行棋游戏。 1. 游戏规则分析 在开始实现游戏前,我们需要先对飞行棋的规则进行分析: 游戏玩家为2~4人。 每个玩家都有4个棋子,初始位置位于起点。 按照顺时针方向轮流掷骰子,掷到6的可以将棋子从起点移动到起点以外的地方;其它点数则表示棋子可以向前移动相应的步数。 某个棋子走到了别人的棋子位置,就可以将别人的棋子送回起点,自…

    C# 2023年6月6日
    00
  • C# 使用CancellationTokenSource取消多线程

    下面我将详细讲解“C#使用CancellationTokenSource取消多线程”的完整攻略。 什么是 CancellationTokenSource CancellationTokenSource是用来控制CancellationToken的一个类型,CancellationToken是一种用于取消例如Task、ThreadPoolWaitHandle和…

    C# 2023年5月15日
    00
  • 如何利用c#实现通用守护进程

    如何利用C#实现通用守护进程 什么是守护进程 守护进程(Daemon)是运行在后台的一种特殊进程。它通常在操作系统启动时自动启动,并且一直运行,直到系统关机。守护进程主要用于在后台执行一些特殊的任务,比如系统日志的收集和记录、维护系统状态、保持网络连接等。 C#实现守护进程 在C#中实现守护进程需要借助System.ServiceProcess命名空间。下面…

    C# 2023年5月15日
    00
  • 详细介绍基于MySQL的搜索引擎MySQL-Fullltext

    下面是关于“详细介绍基于MySQL的搜索引擎MySQL-Fulltext”的完整攻略,包含两个示例。 1. MySQL-Fulltext搜索引擎简介 MySQL-Fulltext搜索引擎是MySQL数据库中的一种全文搜索引擎,它可以帮助我们快速地搜索数据库中的文本数据。MySQL-Fulltext搜索引擎支持多种搜索方式,包括全文搜索、模糊搜索、通配符搜索等…

    C# 2023年5月15日
    00
  • C#学习教程之Socket的简单使用

    C#学习教程之Socket的简单使用 什么是Socket? Socket(套接字)是支持TCP/IP协议的网络通信方式,它是一种用于网络通信的编程接口或应用程序编程接口(API),使得两个进程之间可以通过网络进行数据交互。在 C# 中,可以使用 System.Net.Sockets 命名空间中的类来实现 Socket 的编程。 如何实现 Socket 编程?…

    C# 2023年6月6日
    00
  • C#中Predicate与Func泛型委托的用法实例

    下面是关于“C#中Predicate与Func泛型委托的用法实例”的详细攻略。 1. 概述 在C#中,Predicate<T>与Func<T, bool>是两个重要的泛型委托类型。它们的主要作用是作为参数来传递一些特定的方法,来进行预测和筛选操作。 其中,Predicate<T>主要用于检索、查找等操作,它的定义如下: p…

    C# 2023年6月8日
    00
  • c#编写的番茄钟倒计时器代码

    首先,我们需要理解番茄钟倒计时器的原理。番茄钟工作法是将时间分成25分钟的一个个工作时间段,之间休息5分钟,4次后休息更长的时间。根据番茄钟的原理,我们需要实现一个具有以下功能的倒计时器: 可以设置工作时间和休息时间长度; 当计时器启动时,显示倒计时页面,并开始倒计时; 倒计时页面有“开始”、“暂停”、“停止”、“重置”四个按钮; 倒计时时钟以分钟和秒钟的形…

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