小弟使用的是 python3.7 里面的 win32com,想用 python 将 ppt 里的一页幻灯片( slides )中一个图形( shapes )复制到另一页幻灯片中。
通过查找网上的一些资料,可以实现将 ppt 里面的 shapes 属性赋值,但没有办法删除或者复制。查看了一下 msdn 发现 vb 实现如下,https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.shape.copy 但是在 python 中不知道如何调用 ActivePresentation,求各位大哥帮忙看看,究竟如何实现复制或者删除。
import win32com
from win32com.client import Dispatch, constants
ppt = win32com.client.Dispatch('PowerPoint.Application')
ppt.Visible = 1
pptSel = ppt.Presentations.Open("c:\\code\\pptx\\test.pptx")
# 下面两行可以实现
print(pptSel.Slides(1).Shapes.Count)
pptSel.Slides(1).Shapes(4).TextFrame.TextRange.Text="1"
# 脑洞的写下如此代码,想实现第一张幻灯片图片复制到第 2 个幻灯片中,但系统不会报错,也不运行。
pptSel.Slides(1).Shapes(1).Copy
pptSel.Slides(2).Shapes.Paste
# 删除也不运行
pptSel.Slides(1).Shapes(2).Delete
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.