先简单说下这两个库
pyautogui
PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动空值鼠标和键盘操作,属于多平台支持(Windows, OS, Linux)
win32api
pywin21是一个第三方模块库,主要的作用是方便Python开发者快速调用windows API的一个模块库,可以打开windows内的应用程序及app
为了将这两个第三方库全部使用到,我说下我的实现方式
将vba代码放到word文档内,使用win32api打开word文档,对代码进行复制到粘贴板,然后打开excel文件,将宏打开粘贴代码,执行代码
# 导入相关库
import time
import win32api
import pyautogui
import xlsxwriter
import win32com.client
app = win32com.client.Dispatch('Word.Application')
# 打开word
doc = app.Documents.Open(r'D:\desktop\New folder\vba文件.docx')
# 复制word的所有内容
doc.Content.Copy()
# 打开excel文件
xls_file = xlsxwriter.Workbook(r'D:\desktop\New folder\数据\合并后.xlsx')
xls_file.close()
if win32api.ShellExecute(0, 'open', r'D:\desktop\New folder\数据\合并后.xlsx', '', '', 1):
# 为了能够有个显示和电脑反应的过来,添加一个睡眠时间
time.sleep(4)
# alt + F11打开excel文件的宏
# 键盘操作按住左边的alt键
pyautogui.keyDown('altleft')
pyautogui.press('f11')
# 放开左边alt键
pyautogui.keyUp('altleft')
time.sleep(3)
pyautogui.keyDown('altleft')
pyautogui.press('i')
pyautogui.keyUp('altleft')
time.sleep(3)
pyautogui.keyDown('m')
pyautogui.keyUp('m')
time.sleep(3)
pyautogui.keyDown('ctrlleft')
pyautogui.press('v')
pyautogui.keyUp('ctrlleft')
time.sleep(3)
pyautogui.press('f5')
time.sleep(3)
pyautogui.press('enter')
time.sleep(3)
pyautogui.keyDown('altleft')
pyautogui.press('f11')
pyautogui.keyUp('altleft')
展示下提前准备的文件
合并完成后
视频上传不了,实在抱歉不能展示出来,我将数据上传,大家可以自己试试,切记运行的途中不能点击任何东西,因为我的代码是人可以观察到的,没有写成后台程序运行的那种,请谅解,后面会单独更新这两个库
数据链接添加链接描述
如果需要积分下载 向我反馈