Ich habe ein Powershell-Skript, das eine Excel-Datei öffnet, ein leeres Kennwort neu zuweist und dann die Datei speichert. Ich möchte dem Skript eine Aufgabe hinzufügen, um die ersten 4 Zeilen der Excel-Datei vor dem Speichern zu entfernen.Löschen Sie die ersten vier Zeilen in Excel mit Powershell
5
A
Antwort
5
Sie können OleDB nicht zum Löschen von Daten aus einem Excel-Dokument verwenden. Wie pro MSDN docmentation:
Obwohl der Jet OLE DB-Provider ermöglicht es Ihnen, Datensätze in einer Excel-Arbeitsmappe einfügen und aktualisieren, erlaubt es nicht DELETE-Operation
Was Sie tun können, ist COMs nutzen Exel Schnittstelle zum Löschen von Zeilen. Denken Sie daran, release COM Objekt zu. So,
$file = c:\temp\MyExcelFile.xls
# Star Excel, hide window
$excel = new-object -com Excel.Application -Property @{Visible = $false}
$workbook = $excel.Workbooks.Open($file) # Open the file
$sheet = $workbook.Sheets.Item(1) # Activate the first worksheet
[void]$sheet.Cells.Item(1, 1).EntireRow.Delete() # Delete the first row
$workbook.Close($true) # Close workbook and save changes
$excel.quit() # Quit Excel
[Runtime.Interopservices.Marshal]::ReleaseComObject($excel) # Release COM
Hallo, Perfekt, TY! Würdest du zufällig wissen, wie man einen dynamischen Dateinamen im selben Skript benutzt ... endet mit "mmddyyyy"? –
Sie sollten den Teil über den dynamischen Dateinamen als eine eigene Frage veröffentlichen. Geben Sie weitere Informationen darüber an, wie sich der Name ändert und was mit den Dateien nach dem Entfernen der ersten Zeile zu tun ist. – vonPryz