Bonjour,
Je voudrais créer un script powershell pour convertir des fichiers xlsx en csv.
J'ai écrit :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Function ExcelCSV ($File)
{
$excelFile = "$pwd\" + $File + ".xlsx"
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Excel.DisplayAlerts = $false
$wb = $Excel.Workbooks.Open($excelFile)
foreach ($ws in $wb.Worksheets)
{
$ws.SaveAs("$pwd\" + $File + ".csv",6)
}
$Excel.Quit()
}
$FileName = "Classeur3"
ExcelCSV -File "$FileName |
Ca fonctionne mais ...... le fichier csv généré a la virgule comme séparateur de champ et moi je voudrais le point-virgule.
Apparemment ça vient du fait qu'il faut spécifier à la méthode saveAs d'utiliser les paramètres locaux : paramètre Local décrit [ICI]
J'ai donc essayer
$ws.SaveAs("$pwd\" + $File + ".csv",6,$null,$null,$false,$false,1,2,$false,$false,$false,$true)
mais j'obtiens l'erreur
Surcharge introuvable pour «*SaveAs*» et le nombre d'arguments : «*12*»
Au caractère C:\X3\POH_majDate\xls2csv.ps1:11 : 9
+ $ws.SaveAs("$pwd\" + $File + ".csv",6,$null,$null,$false,$fal ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (
[], MethodException
+ FullyQualifiedErrorId : RuntimeException
Vous auriez une idée pour spécifier ce paramètre local ? (ou une autre idée pour résoudre mon problème !!)
Partager