Benutzer-Werkzeuge

Webseiten-Werkzeuge


epplus

Dies ist eine alte Version des Dokuments!


Inhaltsverzeichnis

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])"
}

Lesen

# 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"

Schreiben

# 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
epplus.1724659055.txt.gz · Zuletzt geändert: 2024/08/26 09:57 von jango