Daten aus Excel auslesen mittels PowerShell

PowerShell (von starwindsoftware.com)

Da ich vor kurzem vor dem Problem gestanden habe bestimmte Zeilen aus einer Excel Datei automatisiert auszulesen, habe ich das Ganze mittels PowerShell umgesetzt. Das folgende Script-Snippet, soll euch den einfachen und schnellen Weg aufzeigen, wie ihr Daten aus Excel auslesen könnt und mit diesen weiterarbeiten könnt.

Script für eine Zelle einer Spalte

# Daten aus Excel Tabellen auslesen
# Bestimmte Werte aus einer Zelle einer Tabelle auslesen.
# Mehr unter www.JoeKaDev.de
 
# Variable für die Datei, des Tabellenblattes, der Zeile und 
# der Spalte die ausgelesen werden sollen.

$dateipfad = "D:\der\Pfad\zur\Exceldatei.xlsx"
$tabelle = "Test"
[int]$zeile = 2
[int]$spalte = 2
$excelanzeigen = $false # $false = nicht anzeigen, $true = anzeigen

#Excel starten, Werte auslesen, Excel beenden
$Excel = New-Object -ComObject excel.application # Excel starten
$Excel.Visible = $excelanzeigen
$Workbook = $Excel.Workbooks.Open($dateipfad)
$Table =$workbook.Worksheets.Item($tabelle)
$User_Name = $Table.Cells.Item($zeile,$spalte).Text
$Excel.Quit() #Excel beenden
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) # Speicher leeren
#EOF

Scriptvariante für fortlaufende Zellen einer Spalte

# Daten aus Excel Datei auslesen
# Bestimmte Werte aus mehreren Zellen/Spalten einer Excel Datei auslesen.
# Mehr unter www.JoeKaDev.de
 
# Definition der Datei, des Tabellenblattes, der Zeile und 
# der Spalte die ausgelesen werden sollen.
$dateipfad = "D:\der\Pfad\zur\Exceldatei.xlsx"
$tabelle = "Test"
[int]$zeile = 2
[int]$spalte = 2

$Excel = New-Object -ComObject excel.application # Excel starten
$Excel.Visible = $false
$Workbook = $Excel.Workbooks.Open($dateipfad)
$Table =$workbook.Worksheets.Item($tabelle)
$DerWert = $Table.Cells.Item($zeile,$spalte).Text
do {
$DerWert = $Table.Cells.Item($zeile,$spalte).Text
$zeile++
}
while($Table.Cells.Item($zeile,$spalte).Text.Length -gt 0)

$Excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
#EOF

Scriptvariante für fortlaufende Zellen einer Zeile

# Daten aus Excel Datei auslesen
# Bestimmte Werte aus mehreren Zellen/Spalten einer Excel Datei auslesen.
# Mehr unter www.JoeKaDev.de
 
# Definition der Datei, des Tabellenblattes, der Zeile und 
# der Spalte die ausgelesen werden sollen.
$dateipfad = "D:\der\Pfad\zur\Exceldatei.xlsx"
$tabelle = "Test"
[int]$zeile = 2
[int]$spalte = 2

$Excel = New-Object -ComObject excel.application # Excel starten
$Excel.Visible = $false
$Workbook = $Excel.Workbooks.Open($dateipfad)
$Table =$workbook.Worksheets.Item($tabelle)
$DerWert = $Table.Cells.Item($zeile,$spalte).Text
do {
$DerWert = $Table.Cells.Item($zeile,$spalte).Text
$spalte++
}
while($Table.Cells.Item($zeile,$spalte).Text.Length -gt 0)

$Excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
#EOF

 

Ein Kommentar

  • Tomasz

    Hallo,
    eine gutes Tutorial. Überhaupt ist die Seite toll.
    Ich habe jetzt ein ähnliches Problem in der Arbeit, nur muss ich die in Excel ausgelesen Daten in ein Word Formular eintragen muss. Machen will ich das indem Ich mir in der Word Vorlage Platzhalter mache. Nur habe ich jetzt das Prpoblem alles zusammenzufügen und zu struckturieren. Hätten Sie vielleicht ein paar Vorschläge oder eine Quelle wo ich was abgucken könnte?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.