想从网上白嫖大佬的代码拿来用的,搞了半天这方面的帖子就找到一篇。请见:(1条消息) python在word文档里插入文件对象_u011420268的博客-CSDN博客

思路很不错,想顺着这个思路来操作,但是发现如下问题

1、要替换附件,首先得有附件,所以这种替换附件的操作不适用新创建word,而适用编辑已有word。

2、被替换附件和本次需要的附件数量还必须相同,否则会出现问题。因为附件的展示效果是以图片的形式存在的,如果数量不一致,会导致部分附件实际上只是个图片。所以这个方式比较适合每次附件数量和格式都相同,只需替换内容的场景。

于是我用了一种比较笨的办法,就是用键盘快捷键来操作插入对象。

from docx import Document
from docx.shared import Inches
import webbrowser
import win32api
import win32con​
#定义Windows上传文件的类
class WinUpLoadFile:def winUpLoadFile(self,file_path,title):time.sleep(3)#一级顶层窗口,此处title为上传窗口名称,浏览器不一样上传窗口名称不一样dialog = win32gui.FindWindow("#32770",title)#二级窗口comboxex32 = win32gui.FindWindowEx(dialog, 0, "ComboBoxEx32", None)#三级窗口combox = win32gui.FindWindowEx(comboxex32, 0, "ComboBox", None)#四级窗口edit = win32gui.FindWindowEx(combox, 0, "Edit", None)button = win32gui.FindWindowEx(dialog, 0, "Button", None)#执行操作win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, file_path)#点击打开上传文件win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)​#制作一个word文档,根据自己情况,替换相关路径和文件名
doc = Document()
doc.add_heading('一级标题',level=1)
p = doc.add_paragraph('', style='List Bullet')
p.add_run('aaaaa')
doc.add_picture(r'E:\TDdownload\名不虚传.jpg', width=Inches(5.0))
p = doc.add_paragraph('', style='List Bullet')
doc.save(r'E:\TDdownload\aaa.docx')#打开已经制作的word文档,用快捷键操作word
webbrowser.open(r'E:\TDdownload\aaa.docx')
time.sleep(4)#ctrl+End移动到word末尾
win32api.keybd_event(17, 0, 0, 0)
win32api.keybd_event(35, 0, 0, 0)
win32api.keybd_event(35, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
#输入回车
win32api.keybd_event(13, 0, 0, 0)
win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)
#crtl+N打开拆入对象窗口
win32api.keybd_event(18, 0, 0, 0)
win32api.keybd_event(78, 0, 0, 0)
win32api.keybd_event(78, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(74, 0, 0, 0)
win32api.keybd_event(74, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(74, 0, 0, 0)
win32api.keybd_event(74, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(18, 0, 0, 0)
win32api.keybd_event(70, 0, 0, 0)
win32api.keybd_event(70, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(18, 0, 0, 0)
win32api.keybd_event(66, 0, 0, 0)
win32api.keybd_event(66, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)
#上传附件
WinUpLoadFile().winUpLoadFile(r'E:\TDdownload\Q-Dir_Installer_x64.zip','浏览')
win32api.keybd_event(18, 0, 0, 0)
win32api.keybd_event(65, 0, 0, 0)
win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(13, 0, 0, 0)
win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)

Python操作word插入对象相关推荐

  1. php怎么在表格里插图片,Python操作word文档插入图片和表格的实例演示

    今天带来Python操作word文档插入图片和表格的实例演示教程详解 前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多 ...

  2. Python 操作Word文档插入图片和表格实例演示

    Python 操作Word文档插入图片和表格实例演示 效果图 实现过程 ① python-docx 库安装 ② word 文档插入图片演示 ③ word 文档插入表格演示 [ 文章推荐 ] Pytho ...

  3. python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示

    前言P6Q免费资源网 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码P6Q免费资源网 实例代码: ...

  4. python win32com操作word插入指定表格图片

    python win32com操作word插入指定表格图片 在网上找了许久,最终自己摸索找到办法,直接上代码, import win32com.client as win32 from win32co ...

  5. python入门教程2word-使用python操作word

    前言 最近工作中,需要将查询的一段时间的数据可视化,并导出为word格式.由于对word操作不熟悉,查阅了一下相关文档,这里简要记录一下如何使用python操作word. 说明 该代码记录了对word ...

  6. 使用python操作word

    前言 最近工作中,需要将查询的一段时间的数据可视化,并导出为word格式.由于对word操作不熟悉,查阅了一下相关文档,这里简要记录一下如何使用python操作word. 说明 本代码来源于官方文档( ...

  7. Python操作word手册,与打包生成word文件

    title: Python操作word手册 copyright: true top: 0 date: 2018-11-23 14:59:03 tags: python-word categories: ...

  8. 【python操作word和pdf】

    python操作word和pdf 一.python操作word 1.python新建word文档及常规操作 2.python对word的字体设置 3.python向word插入图片和表格 4.pyth ...

  9. 基于Python操作Word

    1.初识Python操作Word # 导入库 from docx import Document# 新建空白文档 doc_1 = Document()# 添加标题(0相当于文章的题目,默认级别是1,级 ...

  10. 解决 Java poi 3.8 等版本 操作 word 插入 图片 不成功的问题

    解决 Java poi 3.8等版本操作word插入图片不成功的问题 问题: 最近有一个需求是将Excel中的数据转换到word中,其中包括了文字和图片, 在使用 poi 3.8 向word中写入图片 ...

最新文章

  1. 配置 Azure 文件-4-1-Azure 文件共享
  2. Android FFmpeg系列——5 音视频同步播放
  3. web开发项目,web前端CSS全局样式,面试必问
  4. 域本地组,全局组,通用组的应用
  5. 彻底搞清 Flink 中的 Window 机制
  6. hihocoder-1623-有歧义的号码
  7. Java面向对象之多态(向上、向下转型) 入门实例
  8. ZooKeeper Watcher注意事项
  9. Vue中如何导入并读取Excel数据
  10. php清理浏览器缓存文件在哪里,php如何清除浏览器缓存?
  11. (P24)进程间通信介绍二:死锁 ,信号量与PV原语 ,用PV原语解决司机与售票员问题 ,用PV原语解决民航售票问题 ,用PV原语解决汽车租赁问题
  12. 他在北京反诈骗15年,守住2亿人密码安全
  13. 5个拍出可爱宝宝的方法
  14. 《power BI》 高级筛选器Filter 和Values人工造表 ALL 函数
  15. 开店经验|如何开一家精品咖啡馆
  16. android开发之上传头像
  17. 数据结构——数和二叉树的概念和结构
  18. 比较犹太人和中国人做生意的模式
  19. 内测福利!百度超级链数字藏品转赠券限量发放
  20. 1074 宇宙无敌加法器 (20 分) c语言实现

热门文章

  1. 在第四代计算机期间全世界逐步进入了,1、在第四代计算机期间内,计算机的应用逐步进入到.docx.docx...
  2. 2021.3.23 富途牛牛笔试
  3. 如何运用MATLAB实现K-MEANS聚类分析
  4. 29个最酷的Firefox About:Config配置参数
  5. django orm查询经纬度最近距离的数据
  6. thinkcmf图片上传七牛云不显示的问题(七牛图片后缀!watermark)
  7. django学习笔记(五)------path
  8. ajax 传递请求参数
  9. 第46届EC-Final总结
  10. 科技爱好者周刊(第 118 期):高考志愿怎么填