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-Key: 289988

Url: https://administrator.de/contentid/289988

Printed on: April 26, 2024 at 09:04 o'clock

Member: TlBERlUS
TlBERlUS Dec 03, 2015 at 12:32:09 (UTC)
Goto Top
Hi,

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

Export-Csv -Delimiter ";"  
Mitglied: 122990
122990 Dec 03, 2015 updated at 12:59:05 (UTC)
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
Member: Timo0o
Timo0o Dec 03, 2015 updated at 13:18:39 (UTC)
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!