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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 3003028624
Url: https://administrator.de/contentid/3003028624
Printed on: April 24, 2024 at 22:04 o'clock
4 Comments
Latest comment
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)