lexa203

Excel Diagramm mit Powershell erstellen

Ich versuche über Powershell eine txt-Datei als Diagramm in Excel ausgeben zu lassen.
Die Datei besteht aus 7 Spalten, in der ich die Zahlen aus der 6 Spalte für das Diagramm nutzen möchte.
Hierbei erstellt das Skript mir ein leeres Diagramm. Ich weiß leider nicht wie ich die werte einzelnt aus der Datei herausfiltern kann.
Ich dachte $zeile.1 würde das bei der Varable $daten tuen. Dies funktioniert jedoch nicht.

 $Datapath = "Dateipfad"                                                                   #text file path  
   
    $file = Get-Content $Datapath |Out-String
    $file.Replace(".",",") |Out-File $Datapath                                            #points are converted to commas  
    $txtDatei = Get-Content $Datapath                                                      #txt-file is inserted in powershell

    $Content = Import-Csv -Delimiter "`t" -Path "$Datapath"  -Header "1", "2", "3", "4", "5", "6", "7"    
   
$excel = New-object -comobject Excel.Application
$excel.Visible = $true
$excel.DisplayAlerts = $false
$workbook = $excel.Workbooks.Add()
$sheet = $workbook.Worksheets.Item(1)
$sheet.Name = 'Diagramm'  

foreach ($zeile in $object){
    $daten = $Content.6
    $daten = $zeile.1
    #Write-Host $zeile.1

    foreach ($a in 1..100){
 
    $sheet.cells.item($daten) = $a
    }
}

$range = $sheet.range('a1:a100')  
$chart = $sheet.shapes.addChart().chart
$chart.chartType = 58
$chart.setSourceData($range)
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 666631

Url: https://administrator.de/forum/excel-diagramm-mit-powershell-erstellen-666631.html

Ausgedruckt am: 25.04.2025 um 23:04 Uhr

HansDampf06
HansDampf06 11.05.2021 aktualisiert um 13:55:00 Uhr
Goto Top
Am Besten ist es, wenn Du den Vorgang der Erstellung des Diagramms in Excel zunächst manuell durchspielst. Dann weißt, ob das Ergebnis das ist, was Du haben willst. Im Anschluss zeichnest Du ein Makro auf und spulst dabei den manuellen Vorgang noch einmal ab. Daraus ergibt sich ein Makrotext, den Du entweder von der Syntax her nach Powershell (komplett) übernehmen oder aber für die Fehlersuche als Vergleich heranziehen kannst. Du kannst das Makro auch partiell "ausschlachten".

Bei der Übernahme musst Du natürlich die Konventionen von Powershell beachten. Aber eigentlich ist das ganz simpel.

Viele Grüße
HansDampf06
148121
148121 11.05.2021 aktualisiert um 15:05:35 Uhr
Goto Top
Moin.
foreach ($zeile in $object){
Fällt dir da nichts auf? Die Variable gibbet bei dir ned face-wink Kaffee einschenk.

By the way bitte das nächste mal doch die Netiquette beachten
Diskussionsrichtlinien - die Regeln zu unseren Inhalten

$objExcel = New-Object -Com Excel.Application -Property @{Visible = $true}
$wb = $objExcel.Workbooks.Add()
$ws = $wb.Sheets.Item(1)
$coldata = Import-CSV 'D:\daten.csv' -Delimiter "`t" -Header (1..7)  | select -Expand 6  

0..($coldata.Count-1) | %{
    $ws.Cells.Item($_+1,1).Value = [decimal]$coldata[$_]
}
$chart = $ws.Shapes.AddChart(58)
$chart.chart.SetSourceData($ws.Range("A1").CurrentRegion)  

[System.Runtime.InteropServices.Marshal]::ReleaseComObject($objExcel)
Gruß w.