Bonjour,
Je voudrais créer un script powershell pour convertir des fichiers xlsx en csv.
J'ai écrit :
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$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 !!)