Exportieren von Diagrammen aus Excel als Bilder mit Python
Habe ich versucht, den export der Diagramme aus Excel als Bild-Datei (JPG oder ING) in Python. Ich freue mich auf die WIn32com. Hier ist, was ich habe, bis jetzt.
import win32com.client as win32
excel = win32.gencache.EnsureDispatch("Excel.Application")
wb = excel.Workbooks.Open("<WORKSHEET NAME>")
r = wb.Sheets("<SHEET NAME>").Range("A1:J50")
# Here A1:J50 is the area over which cart is
r.CopyPicture()
Dies ist, wo ich geblieben bin. Ich brauche kopiert den ausgewählten Bereich in eine Datei nun. Jede Hilfe oder Hinweise für das doc kann mir helfen, eine Menge.
Habe ich modelliert den oben genannten code basiert auf den folgenden VBA-Skript:
Sub Export_Range_Images()
' =========================================
' Code to save selected Excel Range as Image
' =========================================
Dim oRange As Range
Dim oCht As Chart
Dim oImg As Picture
Set oRange = Range("A1:B2")
Set oCht = Charts.Add
oRange.CopyPicture xlScreen, xlPicture
oCht.Paste
oCht.Export FileName:="C:\temp\SavedRange.jpg", Filtername:="JPG"
End Sub
Code-Snippet aus : http://vbadud.blogspot.com/2010/06/how-to-save-excel-range-as-image-using.html
- Mein Vorschlag wäre, zu brechen Ihre Beziehungen mit Excel. Warum tun Sie das Diagramm in Excel, und verwenden Sie dann Python? Es ist einfach, die python verwenden, um Daten zu Lesen und tun das Plotten mit matplotlib.
- Leider, die frühere Arbeit zwingt mich, zu bleiben, um zu Excel. Und es gibt mehr als 10 Grafiken, die gezeichnet werden, aus mehreren Blättern.
- Warum nicht den export der Diagramme direkt? Die
Sheet
Objekt hat einenChartObjects
Sammlung: jederChartObject
hat eine beschränkteChart
mit einemExport
Methode. Kopieren Sie den Bereich mit dem Diagramm und einfügen in ein leeres Diagramm scheint den langen Weg.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das ist eine alte Frage, aber es hat geholfen, um mich auf die richtige Spur und so kam ich zurück, um meine fertigen script, der Sie findet, alle Diagramme in einem Arbeitsblatt und exportiert Sie als .png.
Das obige Skript kann funktionieren, aber da es nur kopiert einen Bereich im Arbeitsblatt, Sie sind abhängig von den Graphen in genau diesem Punkt.
Hatte ich einige VBA-Beispiele, damit es funktioniert. Obwohl ich hasse die Beantwortung meiner eigenen Fragen, ich verlasse diesen hier für Leute die es mal brauchen könnte.
Für mich hat das gut funktioniert:
Oder so:
Heutzutage würde ich empfehlen, excel2img Bibliothek, die mir gut gedient. Stellen Sie sicher, dass Sie es installiert haben (pip installieren excel2img)
Wenn Sie nicht brauchen, gridlines - nur verstecken die es auf excel.
git-rep: excel2img, um mehr zu erfahren.