timo0o
Goto Top

Powershell: Excel zu CSV - Trennzeichen ändern??

Moin!

Wie bekomm ich die Powershell dazu, die Excel Tabelle nicht mit Komma, sondern mit Semikolon Trennzeichen als CSV zu exportieren?


Mein bisheriger Code:

function Export-ExcelCSV{
[CmdletBinding()]
Param(
$ExcelWorkbook="$pwd\Test.xlsx",
$WorksheetName='Tabelle1'
)

Try{
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xl=New-Object -ComObject Excel.Application
[void]$xl.Workbooks.Open($ExcelWorkbook)
$xl.Worksheets.Item($WorksheetName).Select()
$fi=[io.fileinfo]$xl.ActiveWorkbook.FullName
$csvfile=$fi.FullName.Replace($fi.Extension,'.csv')
Write-Verbose "Saving CSV to $csvfile"
$xl.ActiveSheet.SaveAs($csvFile,[Microsoft.Office.Interop.Excel.XlFileFormat]::xlCSV)
$xl.Quit()
}
Catch{
Throw $_
}
While([System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)){}
}
Export-ExcelCSV -Verbose

Was muss ich wo anpassen????

Content-ID: 289988

Url: https://administrator.de/forum/powershell-excel-zu-csv-trennzeichen-aendern-289988.html

Ausgedruckt am: 23.12.2024 um 20:12 Uhr

TlBERlUS
TlBERlUS 03.12.2015 um 13:32:09 Uhr
Goto Top
Hi,

wenn ich mich recht erinner emüsste das so gehen (ohne Gewähr)

Export-Csv -Delimiter ";"  
122990
122990 03.12.2015 aktualisiert um 13:59:05 Uhr
Goto Top
Den Funktions-Parameter Local bei der SaveAs-Funktion auf True setzen, wenn die lokalen Regions-Einstellungen Deutsch sind.
https://msdn.microsoft.com/de-de/library/microsoft.office.tools.excel.wo ...
.SaveAs($csvFile,6,$null,$null,$null,$null,$null,$null,$null,$null,$null,$true)
Gruß grexit
Timo0o
Timo0o 03.12.2015 aktualisiert um 14:18:39 Uhr
Goto Top
Hallo,

also mit dem Parameter -Delimiter ";" funktioniert das in meinem Skript irgendwie nicht korrekt. Er will eine Benutzereingabe "Geben Sie Werte für die folgenden Parameter an: InputObject:" haben...... Ich nutze hier ja auch Export-ExcelCSV.

ABER: ich habe es jetzt wie folgte einfach gelöst...in dem obrigen Skript wird ja die CSV mit Komma Trennzeichen erfolgreich erstellt.
Habe jetzt einfach per

Get-Content <Pfad_zur_CSV_mit_Komma> | Foreach-Object {
$_ -replace ',', ';'} | Set-Content <Output_File_mit_Semikolon>

gelöst. Hier wird einfach jedes Komma durch Semikolon ersetzt und fertig.
Ist zwar sicherlich nicht die Beste Methode, aber funktioniert und geht sogar sau schnell.

Trotzdem Danke!