Benutzer-Werkzeuge

Webseiten-Werkzeuge


epplus

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
epplus [2024/08/26 09:53]
jango [Schreiben]
epplus [2024/08/27 13:45] (aktuell)
jango [Schreiben]
Zeile 1: Zeile 1:
 EPPlus ist die Standalone DLL für das [[coding:powershell|Powershell]] Modul ImportExcel. EPPlus ist die Standalone DLL für das [[coding:powershell|Powershell]] Modul ImportExcel.
 +
 +<code powershell>
 +$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])"
 +}
 +</code>
  
 =====Lesen===== =====Lesen=====
 <code powershell> <code powershell>
 +# Pfad zur EPPlus-DLL und zur Excel-Datei, die gelesen werden soll
 $epplusDllPath = "C:\Users\manuel.zarat\Desktop\Aktuell\DB Backups\EPPlus.dll" $epplusDllPath = "C:\Users\manuel.zarat\Desktop\Aktuell\DB Backups\EPPlus.dll"
 $excelFilePath = "C:\Users\manuel.zarat\Desktop\Aktuell\DB Backups\Databases.xlsx" $excelFilePath = "C:\Users\manuel.zarat\Desktop\Aktuell\DB Backups\Databases.xlsx"
  
 +# EPPlus-DLL laden
 Add-Type -Path $epplusDllPath Add-Type -Path $epplusDllPath
  
-$package = New-Object OfficeOpenXml.ExcelPackage +# Funktion zum Laden einer Excel-Datei 
-$package.Load([System.IO.File]::OpenRead($excelFilePath))+function Load-ExcelFile { 
 +    param ( 
 +        [string]$filePath 
 +    ) 
 +    $package = New-Object OfficeOpenXml.ExcelPackage 
 +    $package.Load([System.IO.File]::OpenRead($filePath)) 
 +    return $package 
 +}
  
-foreach ($ws in $package.Workbook.Worksheets) {+# Funktion zum Auswählen eines Arbeitsblatts nach Namen 
 +function Get-Worksheet { 
 +    param ( 
 +        [OfficeOpenXml.ExcelPackage]$package, 
 +        [string]$sheetName 
 +    ) 
 +    return $package.Workbook.Worksheets[$sheetName] 
 +}
  
-    Write-Output "Arbeitsblattname: $($ws.Name)"+# 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 
 +}
  
-    for ($row = 1; $row -le $ws.Dimension.End.Row; $row++{ +# Funktion zum Lesen einer ganzen Zeile als Array 
-        $rowValues = @() +function Get-RowValues { 
-        for ($col = 1; $col -le $ws.Dimension.End.Column; $col++) { +    param ( 
-            $cellValue = $ws.Cells[$row$col].Text +        [OfficeOpenXml.ExcelWorksheet]$worksheet, 
-            $rowValues += $cellValue +        [int]$row 
-        } +    
-         +    $rowValues = @() 
-        #Write-Output ("Zeile $row : " + ($rowValues -join ", ")) +    for ($col = 1; $col -le $worksheet.Dimension.End.Column; $col++) { 
-        Write-Output "$($rowValues[0]) - $($rowValues[1])"+        $cellValue = Get-CellValue -worksheet $worksheet -row $row -col $col 
 +        $rowValues += $cellValue
     }     }
 +    return $rowValues
 +}
  
-    break+# 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"
 </code> </code>
  
Zeile 97: Zeile 184:
  
     # Datei speichern     # Datei speichern
-    $package.SaveAs([System.IO.File]::Create($filePath))+    $package.SaveAs([System.IO.File]::Create($filePath)) # ??? 
 +    $package.SaveAs($filePath)
  
     # Bestätigungsausgabe     # Bestätigungsausgabe
epplus.1724658818.txt.gz · Zuletzt geändert: 2024/08/26 09:53 von jango