Dav*_*ang 6 python excel win32com python-imaging-library python-2.7
所以 PIL ImageGrab.grabclipboard() 似乎发生了一些奇怪的事情
import win32com.client
from PIL import ImageGrab
o = win32com.client.Dispatch('Excel.Application')
o.visible = False
wb = o.Workbooks.Open(path)
ws = wb.Worksheets['Global Dash']
ws.Range(ws.Cells(1,1),ws.Cells(66,16)).CopyPicture()
img = ImageGrab.grabclipboard()
imgFile = os.path.join(path_to_img,'test.jpg')
img.save(imgFile)
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我注意到如果我 ctrl-V ,图像实际上正确保存在剪贴板上,但我的 img 变量返回 None ,这意味着 ImageGrab.grabclipboard() 不知何故不起作用。有任何想法吗?
小智 8
我这里有一个解决方案,希望对你有帮助。
import excel2img
excel2img.export_img("example.xlsx/example.csv","image.png/image.bmp","sheet!B2:H22")
Run Code Online (Sandbox Code Playgroud)
这对我来说非常有效。
小智 0
我刚刚尝试了问题下评论中发布的方法,它确实有效!
注意使用win32com.client.constants获取xlBitmap。
另外,我的环境是Python 3.6,我没有再尝试过Python 2.7。
win32c = win32com.client.constants
ws.Range(ws.Cells(1,1),ws.Cells(66,16)).CopyPicture(Format= win32c.xlBitmap)
img = ImageGrab.grabclipboard()
imgFile = os.path.join(path_to_img,'test.jpg')
img.save(imgFile)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26744 次 |
| 最近记录: |