lima-city: Webhosting, Domains und Cloud
1 Pluspunkt 0 Minuspunkte

Ich habe mir die historischen Goldpreise als XLSX Sheet von hier heruntergeladen. Wie kann ich mit Powershell automatisch ein Chart als neues Sheet hinzufügen das mir den täglichen Preis von Beginn an als Liniendiagramm darstellt?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Hier ist ein Beispiel Script für Powershell mit COM Objekten.

# Definiere den Pfad zur Excel-Datei
$excelFilePath = "C:\Prices.xlsx"
$newExcelFilePath = "C:\Prices_w_Chart.xlsx"

# Starte Excel und öffne die Arbeitsmappe
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false  # Setze auf $true, wenn du sehen willst, was passiert
$workbook = $excel.Workbooks.Open($excelFilePath)

# Wähle das Arbeitsblatt "Daily" aus
$sheet = $workbook.Sheets.Item("Daily")

# Finde die letzte Zeile
$lastRow = $sheet.Rows.Count

# Definiere die Datenbereiche für das Datum (Spalte C) und den Preis (Spalte E)
$dateRange = $sheet.Range("C2:C$lastRow")
$priceRange = $sheet.Range("E2:E$lastRow")

# Füge ein neues Diagramm hinzu
$chart = $workbook.Charts.Add()
$chart.ChartType = 4  # 4 steht für ein Liniendiagramm

# Weisen Sie dem Diagramm den Datenbereich zu
$chart.SetSourceData($sheet.Range("C2:E$lastRow"))

# Titel und Achsenbeschriftungen setzen
$chart.HasTitle = $true
$chart.ChartTitle.Text = "Goldpreis über Zeit"
$chart.Axes(1).HasTitle = $true  # X-Achse
$chart.Axes(1).AxisTitle.Text = "Datum"
$chart.Axes(2).HasTitle = $true  # Y-Achse
$chart.Axes(2).AxisTitle.Text = "Goldpreis in USD"

# Speichern und schließe die Datei
$workbook.SaveAs($newExcelFilePath)
$workbook.Close()
$excel.Quit()

# Excel-Objekte freigeben
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($chart) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
[GC]::Collect()
[GC]::WaitForPendingFinalizers()
von (486 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

12 Nutzer