在网上搜索”用python截图表格“,出来的大多数是用win32com.client包,里面都会用到,
import win32com.client as win32
win32.gencache.EnsureDispatch("Excel.Application")
如果你的电脑里面有Micorsoft Office,就能正常运行这段话,用python截图表格的事情就迎刃而解了,如果电脑里面没有Office只安装了WPS,就会报错
pywintypes.com_error:(-2147221164,'没有注册类',None,None)
这个很好理解,因为你没有安装Office,所以注册表中没有Excel.Application这个类(如果你安装了Office但是还是提示没有注册类,可以去搜索怎么对注册表的内容进行修改)
而解决这个问题很简单,直接将Excel.Application修改为ket.Application(如果还是不行就试试et.Application,对应不同的wps版本),即下面这个
import win32com.client as win32
win32.gencache.EnsureDispatch("ket.Application")
附上一个能直接运行(请自行修改路径与准备text.xlsx文件)的一个例子:
from PIL import ImageGrab
import win32com.client as win32
file='./test.xlsx' #需要复制为图片的表格文件,文件中有一个sheet
xl_app=win32.gencache.EnsureDispatch("ket.Application")
wb=xl_app.Workbooks.Open(file) #打开文件
ws=wb.Workbooks('sheet') #激活sheet表
pic=ws.Range('A2:F20').CopyPicture() #将A2:F20复制为图片
img=ImageGrab.grabclipboard() #将图片复制到粘贴板
img.save('./pic.png') #保存图片为pic.png