Inhalt aus Excel Tabelle Löschen Powershell
Guten Tag, ist es möglich durch eine User eingabe das Powershell eine Excel Tabelle öffnet und den Entsprechend inhalt löscht?
Beispiel:
Usereingabe: Test1
Powershell: Öffnet vordefinierte Excel Tabelle und sucht die Zeile mit "Test1" und löscht diese.
Beispiel:
Usereingabe: Test1
Powershell: Öffnet vordefinierte Excel Tabelle und sucht die Zeile mit "Test1" und löscht diese.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3003028624
Url: https://administrator.de/forum/inhalt-aus-excel-tabelle-loeschen-powershell-3003028624.html
Ausgedruckt am: 22.12.2024 um 09:12 Uhr
4 Kommentare
Neuester Kommentar
Zitat von @Tobixz:
Guten Tag, ist es möglich durch eine User eingabe das Powershell eine Excel Tabelle öffnet und den Entsprechend inhalt löscht?
Ja, Excel besitzt eine .NET Automatisierungsschnittstelle.
Moin,
ja, das ist per se kein Problem.
Mit Powershell kannst du ohne Probleme Excel-Sheets ansprechen.
Hier mal ein Beispiel, bei dem ein Datensatz nicht gelöscht werden soll, sondern in ein anderes Sheet kopiert werden soll; aber als Azubi und damit angehende Fachkraft () wirst du das sicherlich adaptieren können und dadurch viel lernen Powershell Excel Spalte durchsuchen und Wert in andere Spalte kopieren
Löschen findet sich dann hier:
https://www.mrexcel.com/board/threads/delete-row-with-specific-value-pow ...
Gruß
em-pie
ja, das ist per se kein Problem.
Mit Powershell kannst du ohne Probleme Excel-Sheets ansprechen.
Hier mal ein Beispiel, bei dem ein Datensatz nicht gelöscht werden soll, sondern in ein anderes Sheet kopiert werden soll; aber als Azubi und damit angehende Fachkraft () wirst du das sicherlich adaptieren können und dadurch viel lernen Powershell Excel Spalte durchsuchen und Wert in andere Spalte kopieren
Löschen findet sich dann hier:
https://www.mrexcel.com/board/threads/delete-row-with-specific-value-pow ...
Gruß
em-pie
Servus.
(Kommentare siehe Code)
Grüße Uwe
(Kommentare siehe Code)
# Pfad zur Mappe
$wbPath = "E:\test.xlsx"
# Suchbegriff
$search = '*test1*'
# Excel Objekt erstellen
$objExcel = New-Object -Com Excel.Application -Property @{
Visible = $true # für den Test sichtbar ausführen
DisplayAlerts = $false # keine Dialog zeigen
}
# Mappe öffnen
$wb = $objExcel.Workbooks.Open($wbPath)
# Sheet festlegen
$ws = $wb.Sheets.Item(1)
# Suchbereich festlegen (Bereich der alle belegten Zellen umfasst)
$rngSearch = $ws.UsedRange
# erste Suche durchführen (mittels Wildcard)
$result = $rngSearch.find($search)
# wenn erste Suche erfolgreich war
if($result){
# speichere erste Adresse
$f = $result.Address()
# suche so lange es weitere Fundstellen gibt
$rows = Do{
$result.Row
$result = $rngSearch.FindNext($result)
}while($result -ne $null -and $result.Address() -ne $f)
# lösche die Zeilen in denen der Suchbegriff gefunden wurde
$rows | select -Unique | sort -Descending | %{[void]$ws.Rows[$_].Delete()}
}
# Mappe speichern und schließen
$wb.Save()
$wb.Close()
# Excel schließen
$objExcel.DisplayAlerts = $true
$objExcel.Quit()
# Ressourcen freigeben
[void][System.Runtime.InteropServices.Marshal]::ReleaseComObject($objExcel)