2016-04-13 9 views
4

In openpyxl 2.2 I unter Verwendung der Zeichenmethoden des Diagrammobjekts die Dimension eines Diagramms einstellen konnte:Openpyxl die Dimension eines Diagramms ändern

chart = openpyxl.charts.BarChart() 
chart.drawing.top = 100 
chart.drawing.left = 100 
chart.drawing.width = 600 
chart.drawing.height = 600 

In den neuen Versionen (> 2.3.3) scheint diese Methode nicht mehr zu existieren. Ich lese das Online-Handbuch, und ich finde, wie folgt:...

„Das Diagramm kann in dessen Container positioniert werden x- und y-Position einstellen, w und h passen Sie die Größe Die Einheiten sind Anteile des Behälters Ein Diagramm kann nicht außerhalb seines Containers positioniert werden und die Breite und Höhe sind die dominierenden Einschränkungen: wenn x + w> 1, dann ist x = 1 - w. "

Also dachte ich, dass ich zuerst den Container wechseln musste. Ich suchte im Handbuch die Klasse Klasse openpyxl.chart.chartspace.ChartContainer, aber ich war nicht in der Lage, eine Methode zu finden, um seine Breite und Höhe einzustellen.

Wie kann ich ein Diagramm mit festen benutzerdefinierten Dimensionen anzeigen?

Antwort

7

Der Code für Diagramme wurde komplett in openpyx 2.3 neu geschrieben. Sie können nun die ungefähre Breite und Höhe in cm direkt auf Ihre Karte gesetzt:

chart = openpyxl.chart.BarChart() 
chart.height = 10 # default is 7.5 
chart.width = 20 # default is 15 

Alle Chart-Messungen intern stützen sich auf Umwandlung in das Betriebssystem und kann somit variieren erheblich zwischen den Systemen.

+0

Vielen Dank! Habe ich einen Teil des Online-Handbuchs vermisst oder ist diese Art von Informationen sozusagen in einem anderen Kapitel "versteckt"? – Lornioiz

+0

Ich denke, es könnte in einem der Beispiele sein oder ich habe es nur auf der Mailingliste erwähnt. Die API zum Erstellen und Hinzufügen von Diagrammen zu Blättern ist etwas experimentell wegen der verschiedenen Arten von Ankern (die tatsächlich die Größe bestimmen), die möglich sind, und ich wollte sehen, was die Leute bevorzugten. In Excel werden die Ecken des Diagramms standardmäßig in verschiedenen Zellen fixiert, aber auch eine absolute Positionierung ist möglich. : -/ Fügt den Dokumenten eine Notiz über die Standardeinstellungen hinzu, da sie für die meisten Benutzer zu funktionieren scheinen. –

+1

FWIW Ich habe die Dokumentation aktualisiert, um dies zu erfassen. –