各位大佬!Python通过pywin32(com接口)调用PPT 复制粘贴幻灯片问题!

最近弄了一个项目遇到了下面一个问题。

先上代码(项目里面写的代码,闲看着麻烦直接跳转到后面的-问题还原)

# dq_ppt_start_silde_index、dq_ppt_end_silde_index 这两个都是数字,代表页码

for dq_data_ppt_silde_index, dq_ppt_silde_index in enumerate(range(dq_ppt_start_silde_index, dq_ppt_end_silde_index)):

dq_data_ppt_silde_index += 1

while True:

try:

dq_data_ppt_slides(dq_data_ppt_silde_index).Copy()

dq_ppt_sildes.Paste(dq_ppt_silde_index)

sleep(1)

break

except Exception:

# E_err_jg 代表错误等待时间

print(f'第{dq_ppt_silde_index}页复制出现问题!{E_err_jg}秒后重试。')

sleep(E_err_jg)

代码解释如下:

该代码使用的ppt对象为:
pywin32导入的ppt对象即

from win32com.client import Dispatch

P_app = Dispatch('Powerpoint.Application')

# dq_ppt_ph、ppt_ph: 两个不同的 PPT文件的绝对路径

dq_data_ppt = P_app.Presentations.Open(dq_ppt_ph)

dq_ppt_obj = P_app.Presentations.Open(ppt_ph)

dq_data_ppt_slides = dq_data_ppt.Slides

dq_ppt_sildes = dq_ppt_obj.Slides

问题详情

在上述代码运行的时候,所使用的 P_app 会在成功复制粘贴 N个后直接崩溃。
到底要怎样才可以复制粘贴幻灯片成功呀

问题展示☟

各位大佬!Python通过pywin32(com接口)调用PPT 复制粘贴幻灯片问题!

问题还原

所需代码

# 使用本代码前请先打开两个ppt文件,本程序功能是把第一个PPT的所有幻灯片复制到第二个PPT里面

from win32com.client import Dispatch

P = Dispatch('Powerpoint.Application')

DS = P.Presentations

print(f'当前pptapp共有 {DS.Count} 个打开的PPT文件')

D1 = DS(1)

D2 = DS(2)

print(D1.Name, '|', D2.Name)

D1_sildes, D2_sildes = D1.Slides, D2.Slides

D1_sildes_count, D2_sildes_count = D1_sildes.Count, D2_sildes.Count

for dq_paste_index, dq_copy_index in zip(range(D2_sildes_count + 1, D2_sildes_count + D1_sildes_count + 1),

range(1, D1_sildes_count + 1)):

D1_sildes(dq_copy_index).Copy()

D2_sildes.Paste(dq_paste_index)

print(f'第 {dq_copy_index} 页 ppt 已复制粘贴成功!')


回答:

顶一下,在线等

以上是 各位大佬!Python通过pywin32(com接口)调用PPT 复制粘贴幻灯片问题! 的全部内容, 来源链接: utcz.com/p/938272.html

回到顶部