小弟使用的是 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