Ich versuche, ein Bild von einem Excel namens Inputs_v3 und Blatt mit dem Namen Eingaben zu kopieren und zu speichern. Der Code ist als follows`Kopieren Sie Bild aus Excel und speichern Sie es mit Python
import win32com.client as win32
from PIL import ImageGrab
from xlrd import open_workbook
import os
excel = win32.gencache.EnsureDispatch("Excel.Application")
wb = open_workbook('Inputs_v3.xlsm')
r = wb.sheet_by_name('Inputs')
r.CopyPicture()
im = ImageGrab.grabclipboard()
im.save('somefile.png','PNG')
`Der Fehler wird wie folgt
'Attribute error: 'Sheet' object has no attribute 'CopyPicture''
Bitte legen nahe, wo ich wrong.Thanks im Voraus tue
Sie vermischen Win32com-Aufrufe mit dem 'xlrd'-Paket, die nichts miteinander zu tun haben. Sie haben "Excel" als Verweis auf die Excel-App festgelegt, aber Sie tun nichts damit. Ich bin weder mit xlrd noch mit dem Excel-COM-Modell vertraut, aber es sieht so aus, als ob 'CopyPicture' eine Methode ist, die Sie für das Excel-Arbeitsblattobjekt und nicht für das xlrd-Objekt 'sheet_by_name' aufrufen müssen. Wenn Sie das Bild mit xlrd erhalten können, tun Sie das und verwenden Sie nicht COM, andernfalls verwenden Sie COM, und Sie brauchen xlrd nicht. – nekomatic
Hi ... ich habe versucht, das Arbeitsbuch mit win32.com zu öffnen von Excel = Win32.gencache.EnsureDispatch ("Excel.Application") wb = Excel.Workbooks.Open ("Inputs_v3.xlsm") ... aber Es zeigt, dass wir die Datei nicht finden konnten –
Klingt so, als könnte sie die Datei nicht finden ;-) Versuchen Sie es mit einem vollständigen Pfadnamen. – nekomatic