0 Pluspunkte 0 Minuspunkte
Wie kann ich mit Powershell ein Blatt aus einem XLSX Mappe entfernen?
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Ich verwende dazu das folgende Script

#Specify the path to the Excel file and the WorkSheet Name
$FilePath = "C:\Users\manuel.zarat\Desktop\PermissionsReport.xlsx"
$SheetName = "Summary"

#Create an Object Excel.Application using Com interface
$objExcel = New-Object -ComObject Excel.Application

#Disable the 'visible' property so the document won't open in excel
$objExcel.Visible = $false

#Set Display alerts as false
$objExcel.displayalerts = $False

#Open the Excel file and save it in $WorkBook
$WorkBook = $objExcel.Workbooks.Open($FilePath)

#Load the WorkSheet 'BuildSpecs'
$WorkSheet = $WorkBook.sheets.item($SheetName)

#Deleting the worksheet
$WorkSheet.Delete()

#Saving the worksheet
$WorkBook.Save()
$WorkBook.close($true)
$objExcel.Quit()
von (776 Punkte)  
Vielen Dank das hat funktioniert. Kann ich auf diese Weise auch Zeilen aus einem Blatt löschen?
Wenn du weitere Fragen hast, erstelle bitte einen neuen Beitrag. Dann haben Besucher eine größere Chance, zu finden wonach sie suchen.
0 Pluspunkte 0 Minuspunkte

Du kannst das Powershell Package EPPlus verwenden.

Install-Package -Name EPPlus
Import-Module -Name EPPlus

# Definiere den Pfad zur Excel-Datei und den Namen des zu entfernenden Blattes
$excelFilePath = "Pfad\zur\deiner\Datei.xlsx"
$sheetToRemove = "NameDesBlattes"

# Lade die Excel-Datei
$package = [OfficeOpenXml.ExcelPackage]::new([System.IO.FileInfo]::new($excelFilePath))

# Finde das Blatt, das entfernt werden soll
$worksheet = $package.Workbook.Worksheets[$sheetToRemove]

if ($worksheet -ne $null) {
    # Entferne das Blatt
    $package.Workbook.Worksheets.Delete($sheetToRemove)

    # Speichere die Änderungen
    $package.Save()
    Write-Output "Das Blatt wurde erfolgreich entfernt."
} else {
    Write-Output "Das angegebene Blatt wurde nicht gefunden."
}

# Bereinige
$package.Dispose()
von (542 Punkte)  
Danke für den Code aber leider wird das Blatt nicht gefunden.