microsoft powerpoint 中的 smartart 是一个非常有用的工具,它允许用户创建视觉吸引人的图表和图形来表达信息和概念。通过将普通文本转化为视觉上引人注目的图像,smartart 为观众提供了一种快速简便的方式,使他们更容易理解和记忆所呈现的信息。在本文中,我们将演示如何使用 spire.presentation for python 在 python 中创建、读取和删除 powerpoint 中的 smartart。
安装 spire.presentation for python
本教程需要用到 spire.presentation for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.presentation
如果您不确定如何安装,请参考此教程:如何在 vs code 中安装 spire.presentation for python
python 在 powerpoint 中创建 smartart
spire.presentation for python 提供了 islide.shapes.appendsmartart() 方法来为 powerpoint 中的特定幻灯片添加 smartart 图形。详细步骤如下:
- 创建一个 presentation 类的对象。
- 使用 presentation.loadfromfile() 方法加载 powerpoint 演示文稿。
- 使用 presentation.slide[index] 属性获取该演示文稿中的特定幻灯片。
- 使用 islide.shapes.appendsmartart() 方法插入 smartart 图形到该幻灯片。
- 使用 ismartart.style 和 ismartart.colorstyle 属性给 smartart 图形设置样式和颜色。
- 遍历该 smartart 中的所有默认节点,并使用 ismartart.nodes.removenode() 方法删除它们。
- 使用 ismartart.nodes.addnode() 方法添加一个节点到smartart。
- 使用 ismartartnode.childnodes.addnode() 为刚加的节点添加两个子节点。
- 使用 ismartartnode.childnodes.addnode() 方法分别为以上两个子节点添加两个子节点。
- 使用 ismartartnode.textframe.text 属性为 smartart 的节点和子节点添加文本内容,然后使用 ismartartnode.textframe.textrange.fontheight 属性设置文本的字体大小。
- 使用 presentation.savetofile() 方法保存结果文档。
- python
from spire.presentation.common import *
from spire.presentation import *
# 创建presentation类的对象
presentation = presentation()
# 加载powerpoint演示文稿
presentation.loadfromfile("sample.pptx")
# 获取第一张幻灯片
slide = presentation.slides[0]
# 添加一个smartart (组织架构图) 图形到该幻灯片
smartart = slide.shapes.appendsmartart(200, 60, 500, 430, smartartlayouttype.organizationchart)
# 设置smartart的样式和颜色
smartart.style = smartartstyletype.moderateeffect
smartart.colorstyle = smartartcolortype.colorfulaccentcolors5to6
# 删除smartart的默认节点
list = []
for node in smartart.nodes:
list.append(node)
for subnode in list:
smartart.nodes.removenode(subnode)
# 给smartart添加一个节点
node = smartart.nodes.addnode()
# 给刚加的节点添加两个子节点
subnode1 = node.childnodes.addnode()
subnode2 = node.childnodes.addnode()
# 给第一个子节点添加两个子节点
subsubnode1 = subnode1.childnodes.addnode()
subsubnode2 = subnode1.childnodes.addnode()
# 给第二个子节点添加两个子节点
subsubnode3 = subnode2.childnodes.addnode()
subsubnode4 = subnode2.childnodes.addnode()
# 为smartart中的节点和子节点设置文本内容和文本的字体大小
node.textframe.text = "总经理"
node.textframe.textrange.fontheight = 14.0
subnode1.textframe.text = "开发部经理"
subnode1.textframe.textrange.fontheight = 12.0
subnode2.textframe.text = "测试部经理"
subnode2.textframe.textrange.fontheight = 12.0
subsubnode1.textframe.text = "开发者a"
subsubnode1.textframe.textrange.fontheight = 12.0
subsubnode2.textframe.text = "开发者b"
subsubnode2.textframe.textrange.fontheight = 12.0
subsubnode3.textframe.text = "测试者a"
subsubnode3.textframe.textrange.fontheight = 12.0
subsubnode4.textframe.text = "测试者b"
subsubnode4.textframe.textrange.fontheight = 12.0
# 保存结果文档
presentation.savetofile("创建smartart.pptx", fileformat.pptx2016)
presentation.dispose()
python 读取 powerpoint 中的 smartart
要读取 powerpoint 幻灯片上 smartart 图形的内容,你需要找到幻灯片上的所有 smartart 形状,然后遍历每个 smartart 形状的所有节点,并通过 ismartartnode.textframe.text 属性获取每个节点的文本。具体步骤如下:
- 创建一个 presentation 类的对象。
- 使用 presentation.loadfromfile() 方法加载 powerpoint 演示文稿。
- 使用 presentation.slides[index] 属性获取特定幻灯片。
- 创建一个列表来存储提取的文本。
- 遍历幻灯片上的所有形状。
- 检查形状是否为 ismartart 类型。如果结果为 true,则遍历每个 smartart 形状的所有节点,然后通过 ismartartnode.textframe.text 属性获取每个节点的文本,并将文本追加到列表中。
- 将列表中的文本写入文本文件中。
- python
from spire.presentation.common import *
from spire.presentation import *
# 创建presentation类的对象
presentation = presentation()
# 加载powerpoint演示文稿
presentation.loadfromfile("创建smartart.pptx")
# 获取第一张幻灯片
slide = presentation.slides[0]
# 创建一个列表来存储提取的文本
str = []
str.append("从 smartart 中提取的文本:")
# 遍历幻灯片上的所有形状,找到smartart形状
for shape in slide.shapes:
if isinstance(shape, ismartart):
smartart = shape
# 从smartart中获取文本并将文本追加到列表中
for node in smartart.nodes:
str.append(node.textframe.text)
# 将列表中的文本写入文本文件
with open("smartart文本.txt", "w", encoding = "utf-8") as text_file:
for text in str:
text_file.write(text "\n")
presentation.dispose()
python 删除 powerpoint中 的 smartart
要从 powerpoint 幻灯片中删除 smartart 图形,你需要遍历幻灯片上的所有形状,找到 smartart 形状,然后使用 islide.shapes.remove() 方法从幻灯片中删除它们。具体步骤如下:
- 创建一个 presentation 类的对象。
- 使用 presentation.loadfromfile() 方法加载 powerpoint 演示文稿。
- 使用 presentation.slides[index] 属性获取特定幻灯片。
- 创建一个列表来存储 smartart 形状。
- 遍历幻灯片上的所有形状。
- 检查形状是否为 ismartart 类型。如果结果为 true,则将其追加到列表中。
- 遍历列表中的 smartart 形状,然后使用 islide.shapes.remove() 方法逐个从幻灯片中删除它们。
- 使用 presentation.savetofile() 方法保存结果文档。
- python
from spire.presentation.common import *
from spire.presentation import *
# 创建presentation类的对象
presentation = presentation()
# 加载powerpoint演示文稿
presentation.loadfromfile("创建smartart.pptx")
# 获取第一张幻灯片
slide = presentation.slides[0]
# 创建一个列表来存储smartart图形
list = []
# 遍历该幻灯片上的所有形状
for shape in slide.shapes:
# 找到smartart形状并将它们追加到列表
if isinstance (shape, ismartart):
list.append(shape)
# 从幻灯片中删除smartart形状
for smartart in list:
slide.shapes.remove(smartart)
# 保存结果文档
presentation.savetofile("删除smartart.pptx", fileformat.pptx2016)
presentation.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。