vb treeview 展开子节点_C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形

本文介绍通过C#和http://VB.NET程序代码来创建和编辑PPT文档中的SmartArt图形。文中将分两个操作示例来演示创建和编辑结果。

使用工具:Spire.Presentation for .NET hotfix 5.9.5

dll文件引用:

方式1:下载包;

Spire.Presentation for .NET | 下载​www.e-iceblue.cn
b68b8a50a225d5180f464050af29e4ef.png

下载后,解压,打开Bin文件夹,根据自己用的.NET Framework选择相应的文件夹,如:此示例中使用的是NET4.0,即打开NET4.0文件,找到Spire.Presentation.dll文件。找到dll文件后,vs程序中添加引用该dll。

如下引用结果:

66d42920c2017fa03a32bcda57d3b5e9.png

方式2:通过Nuget搜索下载导入。

Nuget​www.nuget.org

注:创建SmartArt图形时,可创建80多种不同类型的图形,编辑图形是,可添加、删除节点、编辑节点内容、给节点内容设置超链接(包括链接到网页、链接到幻灯片)

示例1. 创建PPT SmartArt图形

using Spire.Presentation;
using Spire.Presentation.Diagrams;namespace AddSmartArt
{class Program{static void Main(string[] args){//实例化Presentation对象Presentation ppt = new Presentation();//设置幻灯片大小ppt.SlideSize.Type = SlideSizeType.Screen16x9;//添加组织结构图类型的SmartArt图形,并指定位置、大小ISmartArt smartArt = ppt.Slides[0].Shapes.AppendSmartArt(100, 50, 450, 250, SmartArtLayoutType.OrganizationChart);//设置SmartArt的样式和颜色smartArt.Style = SmartArtStyleType.IntenceEffect;smartArt.ColorStyle = SmartArtColorType.ColorfulAccentColors3to4;//移除默认的形状(Node即代表SmartArt中的形状)foreach (ISmartArtNode node in smartArt.Nodes){smartArt.Nodes.RemoveNode(node);}//添加形状并在其下面添加嵌套子形状ISmartArtNode node1 = smartArt.Nodes.AddNode();ISmartArtNode node1_1 = node1.ChildNodes.AddNode();ISmartArtNode node1_1_1 = node1_1.ChildNodes.AddNode();ISmartArtNode node1_1_2 = node1_1.ChildNodes.AddNode();ISmartArtNode node1_1_3 = node1_1.ChildNodes.AddNode();ISmartArtNode node1_1_4 = node1_1.ChildNodes.AddNode();ISmartArtNode node1_1_5 = node1_1.ChildNodes.AddNode();ISmartArtNode node1_1_6 = node1_1.ChildNodes.AddNode();ISmartArtNode node1_1_1_1 = node1_1_1.ChildNodes.AddNode();ISmartArtNode node1_1_1_2 = node1_1_1.ChildNodes.AddNode();ISmartArtNode node1_1_1_3 = node1_1_1.ChildNodes.AddNode();ISmartArtNode node1_1_3_1 = node1_1_3.ChildNodes.AddNode();ISmartArtNode node1_1_3_2 = node1_1_3.ChildNodes.AddNode();ISmartArtNode node1_1_6_1 = node1_1_6.ChildNodes.AddNode();ISmartArtNode node1_1_6_2 = node1_1_6.ChildNodes.AddNode();ISmartArtNode node1_1_6_3 = node1_1_6.ChildNodes.AddNode();//在每一个形状上添加文字node1.TextFrame.Text = "董事会n" + "Board of Directors";           node1_1.TextFrame.Text = "总经理n" + "General Manager";node1_1_1.TextFrame.Text = "供应部n" + "Supply Dept.";node1_1_2.TextFrame.Text = "营销部n" + "Sales Dept.";node1_1_3.TextFrame.Text = "生产部n" + "Productive Dept.";node1_1_4.TextFrame.Text = "财务部n" + "Finance Dept.";node1_1_5.TextFrame.Text = "人力资源部n" + "HR Dept.";node1_1_6.TextFrame.Text = "质检中心n" + "Quality Center";node1_1_1_1.TextFrame.Text = "采购部n" + "Purchase Dept.";node1_1_1_2.TextFrame.Text = "仓库管理n" + "Warehouse Manager";node1_1_1_3.TextFrame.Text = "物流部n" + "Logistics Dept.";node1_1_3_1.TextFrame.Text = "生产车间n" + "Production Dept.";node1_1_3_2.TextFrame.Text = "维修部n" + "Maintenance Dept.";node1_1_6_1.TextFrame.Text = "生产质量管理n" + "Production Quality Mgt.";node1_1_6_2.TextFrame.Text = "生产安全管理n" + "Production Safety Mgt.";node1_1_6_3.TextFrame.Text = "环境管理n" + "Environmental Mgt.";//保存文档ppt.SaveToFile("result.pptx", FileFormat.Pptx2013);System.Diagnostics.Process.Start("result.pptx");}}
}

图形创建结果:

8c801fc4159554bcedc7846815a877a7.png

http://vb.net

Imports Spire.Presentation
Imports Spire.Presentation.DiagramsNamespace AddSmartArtClass ProgramPrivate Shared Sub Main(args As String())'实例化Presentation对象Dim ppt As New Presentation()'设置幻灯片大小ppt.SlideSize.Type = SlideSizeType.Screen16x9'添加组织结构图类型的SmartArt图形,并指定位置、大小Dim smartArt As ISmartArt = ppt.Slides(0).Shapes.AppendSmartArt(100, 50, 750, 450, SmartArtLayoutType.OrganizationChart)'设置SmartArt的样式和颜色smartArt.Style = SmartArtStyleType.IntenceEffectsmartArt.ColorStyle = SmartArtColorType.ColorfulAccentColors3to4'移除默认的形状(Node即代表SmartArt中的形状)For Each node As ISmartArtNode In smartArt.NodessmartArt.Nodes.RemoveNode(node)Next'添加形状并在其下面添加嵌套子形状Dim node1 As ISmartArtNode = smartArt.Nodes.AddNode()Dim node1_1 As ISmartArtNode = node1.ChildNodes.AddNode()Dim node1_1_1 As ISmartArtNode = node1_1.ChildNodes.AddNode()Dim node1_1_2 As ISmartArtNode = node1_1.ChildNodes.AddNode()Dim node1_1_3 As ISmartArtNode = node1_1.ChildNodes.AddNode()Dim node1_1_4 As ISmartArtNode = node1_1.ChildNodes.AddNode()Dim node1_1_5 As ISmartArtNode = node1_1.ChildNodes.AddNode()Dim node1_1_6 As ISmartArtNode = node1_1.ChildNodes.AddNode()Dim node1_1_1_1 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()Dim node1_1_1_2 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()Dim node1_1_1_3 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()Dim node1_1_3_1 As ISmartArtNode = node1_1_3.ChildNodes.AddNode()Dim node1_1_3_2 As ISmartArtNode = node1_1_3.ChildNodes.AddNode()Dim node1_1_6_1 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()Dim node1_1_6_2 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()Dim node1_1_6_3 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()'在每一个形状上添加文字node1.TextFrame.Text = "董事会" & vbLf + "Board of Directors"node1_1.TextFrame.Text = "总经理" & vbLf + "General Manager"node1_1_1.TextFrame.Text = "供应部" & vbLf + "Supply Dept."node1_1_2.TextFrame.Text = "营销部" & vbLf + "Sales Dept."node1_1_3.TextFrame.Text = "生产部" & vbLf + "Productive Dept."node1_1_4.TextFrame.Text = "财务部" & vbLf + "Finance Dept."node1_1_5.TextFrame.Text = "人力资源部" & vbLf + "HR Dept."node1_1_6.TextFrame.Text = "质检中心" & vbLf + "Quality Center"node1_1_1_1.TextFrame.Text = "采购部" & vbLf + "Purchase Dept."node1_1_1_2.TextFrame.Text = "仓库管理" & vbLf + "Warehouse Manager"node1_1_1_3.TextFrame.Text = "物流部" & vbLf + "Logistics Dept."node1_1_3_1.TextFrame.Text = "生产车间" & vbLf + "Production Dept."node1_1_3_2.TextFrame.Text = "维修部" & vbLf + "Maintenance Dept."node1_1_6_1.TextFrame.Text = "生产质量管理" & vbLf + "Production Quality Mgt."node1_1_6_2.TextFrame.Text = "生产安全管理" & vbLf + "Production Safety Mgt."node1_1_6_3.TextFrame.Text = "环境管理" & vbLf + "Environmental Mgt."'保存文档ppt.SaveToFile("result.pptx", FileFormat.Pptx2013)System.Diagnostics.Process.Start("result.pptx")End SubEnd Class
End Namespace

示例2. 编辑PPT SmartArt图形

using Spire.Presentation;
using Spire.Presentation.Diagrams;namespace ModifySmartArt
{class Program{static void Main(string[] args){//加载PPT幻灯片文档Presentation ppt = new Presentation();ppt.LoadFromFile("test.pptx");//获取SmartArt图形的节点集合ISmartArt smartart = ppt.Slides[0].Shapes[0] as ISmartArt;ISmartArtNodeCollection nodes = smartart.Nodes;//更改节点内容nodes[1].TextFrame.Text = "新修改的节点内容";//添加超链接到节点nodes[2].Click = new ClickHyperlink("https://baike.baidu.com/");//添加指向网页的超链接nodes[3].Click = new ClickHyperlink(ppt.Slides[1]);//添加指向指定幻灯片的超链接//添加节点ISmartArtNode newnode = nodes[5].ChildNodes.AddNode();newnode.TextFrame.Text = "新添加的节点内容";//删除节点//nodes[0].ChildNodes[3].ChildNodes.RemoveNodeByPosition(0); //保存到本地并打开ppt.SaveToFile("output.pptx", FileFormat.Pptx2010);System.Diagnostics.Process.Start("output.pptx");}}
}

添加超链接后,注意要在幻灯片播放下才可见超链接添加效果:

b110426649fca906de583d08c180d2f1.png

http://VB.NET

Imports Spire.Presentation
Imports Spire.Presentation.DiagramsNamespace ModifySmartArtClass ProgramPrivate Shared Sub Main(args As String())'加载PPT幻灯片文档Dim ppt As New Presentation()ppt.LoadFromFile("test.pptx")'获取SmartArt图形的节点集合Dim smartart As ISmartArt = TryCast(ppt.Slides(0).Shapes(0), ISmartArt)Dim nodes As ISmartArtNodeCollection = smartart.Nodes'更改节点内容nodes(1).TextFrame.Text = "新修改的节点内容"'添加超链接到节点nodes(2).Click = New ClickHyperlink("https://baike.baidu.com/")'添加指向网页的超链接nodes(3).Click = New ClickHyperlink(ppt.Slides(1))'添加指向指定幻灯片的超链接'添加节点Dim newnode As ISmartArtNode = nodes(5).ChildNodes.AddNode()newnode.TextFrame.Text = "新添加的节点内容"'删除节点'nodes[0].ChildNodes[3].ChildNodes.RemoveNodeByPosition(0); '保存到本地并打开ppt.SaveToFile("output.pptx", FileFormat.Pptx2010)System.Diagnostics.Process.Start("output.pptx")End SubEnd Class
End Namespace

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql安装教程8.0.21安装,Windows系统下MySQL8.0.21安装教程(图文详解)

安装建议:尽量不要用.exe进行安装,用压缩包安装,对日后的卸载/版本升级更为方便下载地址:https://dev.mysql.com/downloads/mysql/1、点击上面的下载地址得到zip压缩包2、解压到要安装的目录我这里是E:\database\mysql8\mysql-8.0…

Java中 a+=b和a=a+b有什么区别?

一:性能方面 aab是加法运算 需要两次寻找地址而ab是增量运算有寄存器优先时 只有一次地址查找。效率方面后者略高于前者 基于现在计算机的发展可忽略不计。 二:对于不同类型的a,b来说 1:不同类型的两个变量在进行运算的时候,我们经常说到的…

事务管理:事务的状态相关知识笔记

1、事务的几个概念中止事务:事务在执行过程中发生故障,不能执行完成的事务。可以进行事务回滚,保持数据库的一致性。事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚。已提交事务:成功执行完成的事务称为已提交…

mysql符合安可要求吗,安可是什么意思?演唱太过精彩,粉丝要求返场(再唱一个)...

解答:安可是指再唱一个的意思,最早是源自英语“Encore”,常被用在演唱会上,当最后一轮表演或演唱结束之后,粉丝就会开始大喊“安可”,就是想要再听一场,这时歌手也会应粉丝的要求返场。安可是什…

事务管理基础:数据库的并发控制相关知识笔记

1、并发操作的概念介绍并发操作主要是指在多用户共享的系统当中,可能存在很多用户同时对同一个数据进行操作。并发操作会造成丢失更新、不可重复读、读脏数据。主要原因是事务的并发操作破坏了事务的隔离性。2、事务调度相关知识事务调度主要有串行调度、并发调度、…

Spring的AOP理解

Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用。 AOP,一般称为面向切面,作为面向对象的一种补充&#xff…

wpf 如何设置弹出窗口必须关闭才能打开其他软件_5招教你如何清除C盘除系统外的所有垃圾!都学会了吗?...

老毛桃winpe 2019-04-24 12:22:54 对于C盘,最让我们头疼的问题就是空间不足了!虽然知道C盘会存有很多垃圾,但由于C盘也是系统盘,我们只能可望不可及。那么,有什么办法清除C盘除系统外的所有垃圾吗?答案是…

事务管理基础:排它锁和共享锁相关知识笔记

1、排它锁、共享锁出现的意义数据库的并发事务对数据库进行读写,可能会破坏事务的隔离性和数据一致性。为了保持事务的隔离性,系统必须对事务之间的相互作用加以控制。最典型的做法就是当一个事务访问某个数据对象时,其他事务都不能更新该数据…

php对象底层结构,PHP 底层原理之类和对象

对于PHPer来说,OOP是不可或缺的开发思维,但是你对php类和对象的底层实现又了解多少呢?本着知其然且知其所以然的思想,让我们一起来寻找答案~类的底层实现可看作是之前我们讲过的变量、函数等的知识集合。所以想要理解更深入的同学…

程序默认在副屏显示_聊一款性价比极高的电竞显示器

小米在6月17日开启了小米显示器27寸165Hz版本的众筹,这台显示器的分辨率为2560x1440,也就是大家熟悉的小金刚,它与大金刚的最大区别也只是省去了G-Sync功能,而其他方面的参数几乎是一致的。那么我们今天就来聊聊这款真香的显示器。…

事务管理基础:两段锁协议、活锁、死锁相关知识整理

1、两段锁协议(Two-phase Locking Protocol) 两段锁协议是指对任何数据进行读写之前必须对数据进行加锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。两段锁协议中两段的含义:事务分为两个阶段,第…

php 空函数,PHP 中函数 isset(), empty(), is_null() 的区别

PHP 中函数 isset(), empty(), is_null() 的区别,使用 PHP 进行开发的时候,经常会用到 isset(), empty(), is_null() 这几个函数对数据进行判断,但是这是哪个函数的具体区别其实没有很好的掌握。下面我们详细讲解一下:NULL什么是 NULL&#x…

UVa11021

11021 TribblesGRAVITATION, n.“The tendency of all bodies to approach one another with a strengthproportion to the quantity of matter they contain – the quantity ofmatter they contain being ascertained by the strength of their tendencyto approach one anot…

数据库系统故障相关知识笔记

数据库系统中可能发生的故障主要包括事务故障、系统故障、介质故障、计算机病毒等。下面给大家简单整理一下相关的故障知识笔记。1、事务故障事务故障是因为程序执行错误而引起的非预期、异常终止的故障。主要有逻辑错误、系统错误导致事务的执行失败。逻辑错误:比如…

dede php分页代码,DEDECMS系统分页标签自定义二次开发

以前有给大家写过一篇自定义dedecms留言板的分页,下面我再来给大家分享一篇自定义常见的分页标签例子,希望文章对大家会有所帮助.自定搜索结果页面文章分页,在/plus文件夹中新建一个search.php文件,代码如下:require_once(dirname(__FILE__)."/../include/common.inc.php&…

数据库系备份相关知识笔记

1、数据库备份的知识介绍在互联网时代,最珍贵的财产不是计算机应用软件,更不是计算机硬件,而是企业在业务长期发展过程中积累下来的业务数据。建立网络最根本的用途是更加方便的传递、使用数据,人为原因、硬盘损坏、计算机病毒、断…

操作系统:分享6 个“吓人”的 Linux 命令

目录 1、crypt 2、kill 3、shred 5、at midnight 6、daemons 1、crypt 好吧,我们一直都有crypt。顾名思义,crypt不是存放垃圾文件的地宫或墓坑,而是加密文件内容的命令。 如今,“crypt”通常作为一个脚本而实现:通过调…

谷歌网络代理工具_谷歌更新了Dialogflow AI引擎,帮助客户创建更好的虚拟代理...

日前,谷歌发布了对其Dialogflow的一些重要更新,对话流是其呼叫中心人工智能服务的主要技术,它可以自动与呼叫中心的客户进行交互。据悉,Dialogflow是一个会话人工智能引擎,用于创建虚拟代理,可以理解和响应…