PRTSC并使用python粘贴到Excel中

时间:2018-09-18 10:51:33

标签: excel python-3.x python-imaging-library openpyxl pywinauto

我使用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中的包/模块吗?

0 个答案:

没有答案