Dies ist eine alte Version des Dokuments!
EPPlus ist die Standalone DLL für das Powershell Modul ImportExcel.
$epplusDllPath = ".\EPPlus.dll" $excelFilePath = ".\Databases.xlsx" Add-Type -Path $epplusDllPath $package = New-Object OfficeOpenXml.ExcelPackage $package.Load([System.IO.File]::OpenRead($excelFilePath)) $ws = $package.Workbook.Worksheets["Sheet1"] for ($row = 1; $row -le $ws.Dimension.End.Row; $row++) { $rowValues = @() for ($col = 1; $col -le $ws.Dimension.End.Column; $col++) { $cellValue = $ws.Cells[$row, $col].Text $rowValues += $cellValue } Write-Output "$($rowValues[0]) - $($rowValues[1])" }
# Pfad zur EPPlus-DLL und zur Excel-Datei, die gelesen werden soll $epplusDllPath = "C:\Users\manuel.zarat\Desktop\Aktuell\DB Backups\EPPlus.dll" $excelFilePath = "C:\Users\manuel.zarat\Desktop\Aktuell\DB Backups\Databases.xlsx" # EPPlus-DLL laden Add-Type -Path $epplusDllPath # Funktion zum Laden einer Excel-Datei function Load-ExcelFile { param ( [string]$filePath ) $package = New-Object OfficeOpenXml.ExcelPackage $package.Load([System.IO.File]::OpenRead($filePath)) return $package } # Funktion zum Auswählen eines Arbeitsblatts nach Namen function Get-Worksheet { param ( [OfficeOpenXml.ExcelPackage]$package, [string]$sheetName ) return $package.Workbook.Worksheets[$sheetName] } # Funktion zum Lesen eines Werts aus einer bestimmten Zelle function Get-CellValue { param ( [OfficeOpenXml.ExcelWorksheet]$worksheet, [int]$row, [int]$col ) return $worksheet.Cells[$row, $col].Text } # Funktion zum Lesen einer ganzen Zeile als Array function Get-RowValues { param ( [OfficeOpenXml.ExcelWorksheet]$worksheet, [int]$row ) $rowValues = @() for ($col = 1; $col -le $worksheet.Dimension.End.Column; $col++) { $cellValue = Get-CellValue -worksheet $worksheet -row $row -col $col $rowValues += $cellValue } return $rowValues } # Funktion zum Lesen aller Daten aus einem Arbeitsblatt function Get-AllRows { param ( [OfficeOpenXml.ExcelWorksheet]$worksheet ) $allRows = @() for ($row = 1; $row -le $worksheet.Dimension.End.Row; $row++) { $rowValues = Get-RowValues -worksheet $worksheet -row $row $allRows += ,@($rowValues) } return $allRows } # Hauptfunktion zum Lesen und Ausgeben der Daten aus der Excel-Datei function Read-ExcelFile { param ( [string]$filePath, [string]$sheetName ) # Excel-Datei laden $package = Load-ExcelFile -filePath $filePath # Arbeitsblatt auswählen $worksheet = Get-Worksheet -package $package -sheetName $sheetName if ($null -eq $worksheet) { Write-Error "Arbeitsblatt '$sheetName' nicht gefunden." return } # Alle Zeilen aus dem Arbeitsblatt lesen $allRows = Get-AllRows -worksheet $worksheet # Ausgabe der Daten foreach ($row in $allRows) { Write-Output ($row -join ", ") } } # Beispiel: Daten aus einem bestimmten Arbeitsblatt lesen und ausgeben Read-ExcelFile -filePath $excelFilePath -sheetName "Sheet1"
# Pfad zur EPPlus-DLL und zur neuen Excel-Datei $epplusDllPath = ".\EPPlus.dll" $excelFilePath = "Test.xlsx" # EPPlus-DLL laden Add-Type -Path $epplusDllPath # Funktion zum Erstellen eines neuen Arbeitsblatts function Add-Worksheet { param ( [OfficeOpenXml.ExcelPackage]$package, [string]$sheetName ) return $package.Workbook.Worksheets.Add($sheetName) } # Funktion zum Hinzufügen von Daten in eine bestimmte Zelle function Add-CellValue { param ( [OfficeOpenXml.ExcelWorksheet]$worksheet, [int]$row, [int]$col, [object]$value ) $worksheet.Cells[$row, $col].Value = $value } # Funktion zum Hinzufügen einer ganzen Zeile function Add-Row { param ( [OfficeOpenXml.ExcelWorksheet]$worksheet, [int]$row, [array]$values ) for ($i = 0; $i -lt $values.Length; $i++) { Add-CellValue -worksheet $worksheet -row $row -col ($i + 1) -value $values[$i] } } # Hauptfunktion zum Erstellen der Excel-Datei mit mehreren Arbeitsblättern function Create-ExcelFile { param ( [string]$filePath ) # Neues Excel-Paket erstellen $package = New-Object OfficeOpenXml.ExcelPackage # Erstellen des ersten Arbeitsblatts und Hinzufügen von Daten $worksheet1 = Add-Worksheet -package $package -sheetName "Sheet1" Add-Row -worksheet $worksheet1 -row 1 -values @("Name", "Alter") Add-Row -worksheet $worksheet1 -row 2 -values @("John Doe", 30) # Erstellen des zweiten Arbeitsblatts und Hinzufügen von Daten $worksheet2 = Add-Worksheet -package $package -sheetName "Sheet2" Add-Row -worksheet $worksheet2 -row 1 -values @("Produkt", "Preis") Add-Row -worksheet $worksheet2 -row 2 -values @("Laptop", 999.99) # Erstellen des dritten Arbeitsblatts und Hinzufügen von Daten $worksheet3 = Add-Worksheet -package $package -sheetName "Sheet3" Add-Row -worksheet $worksheet3 -row 1 -values @("Land", "Hauptstadt") Add-Row -worksheet $worksheet3 -row 2 -values @("Deutschland", "Berlin") # Datei speichern $package.SaveAs([System.IO.File]::Create($filePath)) # Bestätigungsausgabe Write-Output "Excel-Datei erfolgreich erstellt unter: $filePath" } # Excel-Datei erstellen Create-ExcelFile -filePath $excelFilePath