none
XLS en CSV via PowerShell RRS feed

Toutes les réponses

  • et pour faire simple t'as ce script, après il ne y'a pas une seule commande à taper, faut faire preuve d’imagination et adapter à ton cas, ouvrir le fichier excel et à l'aide d'une boucle exporter en CSV.

    Function ExcelToCsv ($File) {
        $myDir = "D:\Excel"
        $excelFile = "$myDir\" + $File + ".xlsx"
        $Excel = New-Object -ComObject Excel.Application
        $wb = $Excel.Workbooks.Open($excelFile)
    	
        foreach ($ws in $wb.Worksheets) {
            $ws.SaveAs("$myDir\" + $File + ".csv", 6)
        }
        $Excel.Quit()
    }
    
    $FileName = "list_of_names"
    ExcelToCsv -File $FileName


    vendredi 10 avril 2020 14:17
  • Bonjour,

    attention, pour les fichiers XLSX contenant plusieurs feuilles, seule la feuille principale est convertie en fichier CSV. Donc, sauf si l'on est sur d'avoir des fichiers Excel mono-feuille, faire une alerte et ne pas supprimer le fichier source.

    A bientôt,


    Thierry DEMAN-BARCELO. Office Apps&Services MVP. MCSE:Enterprise admin, Messaging, Server Infrastructure 2016(89 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate, Security Admin https://base.faqexchange.info

    samedi 11 avril 2020 11:22
  • Salut Thierry,

    J'ajoute aussi que les fichiers avec des macros ne seront pas convertis correctement, en gros il faut qu'il improvise.


    • Modifié M dakhama samedi 11 avril 2020 12:16
    samedi 11 avril 2020 12:14
  • Merci pour vos réponses

    samedi 11 avril 2020 13:23
  • Bonjour Sdembele

    Inconvénient, qui peut être majeur, de ce qui est proposé ci-dessus : Il faut avoir excel installé sur la  bécane qui exécute le script. Et ce n'est pas si courant que ça d'avoir le pack Office installlé sur un serveur.

    Il y a un module Powershell nommé ImportExcel qui fait ça très bien, à savoir ouvrir/importer des fichiers excel ... sans avoir ce dernier installé sur la bécane.

    2 commandes à passer :

     Import-Excel -Path \\path\vers\tonfichier\excel.xls -Sheet "feuille1" 


    pour importer juste l'onglet "feuille 1" (si ton fichier excel à plusieurs onglets) et derrière tu pipeline avec le classique

    Export-Csv -Path \\path\vers\exceltoscv.csv -delimiter ";" -NoTypeInformation

    pour sortir dans un fichier .csv.

    Peut-on faire plus simple ?

    Dernier point : pour les macros, c'est no-way ... à ma connaissance.

    Cordialement

    Olivier

    dimanche 12 avril 2020 16:21