首页 > 解决方案 > PRTSC 并使用 python 粘贴到 Excel 中

问题描述

我使用 python 3.7 编写了一个小脚本,它可以自动执行以下操作:

-> 在桌面上打开一个特定的应用程序

-> 加载一个 excel 工作簿并读取包含时间的列

->从excel(每一行)中选择时间并转到打开的应用程序并导航到时间

->PRTSC 桌面并保存为 temp.png

-> 使用 excel 并在同一个工作簿中创建一个新工作表并粘贴 temp.png

import pywinauto
import openpyxl
from PIL import ImageGrab
#starts a application
#loads a workbook
for i in range(2,ws.max_row+1):
        #grabs the timing from the row of a column
        #navigates in the application using the timing
        wb.create_sheet(s)
        dlg=app.top_window() #my application is on top
        dlg.type_keys('{PRTSC}')
        time.sleep(1)
        ws1=wb[s]
        im = ImageGrab.grabclipboard()
        im.save('temp.png','PNG')
        img = drawing.image.Image('temp.png')
        time.sleep(1)
        j+=1
        ws1.add_image(img,'A'+str(40*j+1)) #pastes the image after every 40 cells 
        time.sleep(1)
wb.save(newsample.xlsx)

所以,脚本执行得很好,我得到了带有图像的新 excel(newsample.xlsx),但这里的问题是所有图像都只是在最后一步捕获的最新图像(temp.png)。

我认为 drawing.image.Image/add_image 行存在问题

我应该在循环的每一步都保存 wb 吗???

或者是否有任何其他包/模块用于捕获图像并粘贴到 excel 中?

标签: excelpython-3.xpython-imaging-libraryopenpyxlpywinauto

解决方案


推荐阅读