PowerShell Excel Chart Sortierung - Reihenfolge der Legende ändern
Hallo,
ich habe aus PowerShell heraus eine Tabelle mit Charts erstellt. Diesen habe ich Serien hinzugefügt. Ich möchte die Serien gerne alphabetisch sortieren um die Übersichtlichkeit bei ca. 30 Serien zu erhöhen. Derzeit habe ich jedoch keine Idee wie ich es umsetzen kann, weil beim Aufzeichnen des Makros in Excel wurde außer dem selektieren des Charts nichts aufgezeichnet .
Bis jetzt habe ich die Serien in ein Array geschrieben und dort die Namen extrahiert, so dass ich diese sortieren kann. Nun stehe ich aber vor dem Problem, dass ich bisher keine Methode die Reihenfolge zu ändern. Muss das über Neuanlegen und löschen laufen oder gibt es einen einfacheren Weg?
Gruß
derhoeppi
ich habe aus PowerShell heraus eine Tabelle mit Charts erstellt. Diesen habe ich Serien hinzugefügt. Ich möchte die Serien gerne alphabetisch sortieren um die Übersichtlichkeit bei ca. 30 Serien zu erhöhen. Derzeit habe ich jedoch keine Idee wie ich es umsetzen kann, weil beim Aufzeichnen des Makros in Excel wurde außer dem selektieren des Charts nichts aufgezeichnet .
Bis jetzt habe ich die Serien in ein Array geschrieben und dort die Namen extrahiert, so dass ich diese sortieren kann. Nun stehe ich aber vor dem Problem, dass ich bisher keine Methode die Reihenfolge zu ändern. Muss das über Neuanlegen und löschen laufen oder gibt es einen einfacheren Weg?
Gruß
derhoeppi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 286915
Url: https://administrator.de/forum/powershell-excel-chart-sortierung-reihenfolge-der-legende-aendern-286915.html
Ausgedruckt am: 25.12.2024 um 04:12 Uhr
5 Kommentare
Neuester Kommentar
Moin,
wie wärs mit vorher sortieren und dann die vorsortierten Serien gleich in der richtigen Reihenfolge hinzufügen ...?!
Oder du nutzt die PlotOrder Eigenschaft der Serien und weist ihnen den richtigen Index zu.
Vorgehensweise also: Sortiertes Array durchlaufen und mittels Schleife einen inkrementierten Index der PlotOrder-Eigenschaft zuweisen, feddich.
Gruß grexit
wie wärs mit vorher sortieren und dann die vorsortierten Serien gleich in der richtigen Reihenfolge hinzufügen ...?!
Oder du nutzt die PlotOrder Eigenschaft der Serien und weist ihnen den richtigen Index zu.
Vorgehensweise also: Sortiertes Array durchlaufen und mittels Schleife einen inkrementierten Index der PlotOrder-Eigenschaft zuweisen, feddich.
Gruß grexit
Wenn man es so macht wie ich empfohlen habe, geht das problemlos (hier getestet) !
$xl = New-Object -Com Excel.Application
$wb = $xl.Workbooks.Open("C:\Mappe1.xlsx")
$xl.Visible = $true
$ws = $wb.Sheets.Item(1)
$chart = $ws.ChartObjects('Diagramm1').Chart
$cnt = 1
$chart.SeriesCollection() | sort Name | %{
$_.PlotOrder = $cnt
$cnt++
}
Bei der ursprünglichen Einrichtung habe ich jedoch die Range für die Eigenschaft Values angegeben. Wie kann ich diese denn auslesen?
Schau dir mal diese Eigenschaften des Series-Objekts an:Formula
FormulaLocal
FormulaR1C1
FormulaR1C1Local