Transformer des csv en excel

Fermé
litchi - 31 oct. 2022 à 22:27
brucine Messages postés 18327 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024 - 1 nov. 2022 à 08:39

Bonjour,

Je débute en powershell, après une formation de 3 jours. Je débute également en programmation. J'ai écrit un script qui ne fonctionne pas et je ne comprends pas l'originie du problème.

Je souhaite convertir plusieurs fichiers CSV en fichiers excels qui porteraient le même nom. Voici mon code (mes variables renvoient les bonnes données):

# lister le dossier contenant les fichiers csv
$fichiers_originaux = (get-childitem -Path \Users\christinefabre\Documents\powershell\CSVOriginels).FullName
# nom des fichiers csv 
$nomCSV = (get-childitem -Path \Users\christinefabre\Documents\powershell\CSVOriginels).Name
# Dossier qui contiendra les excels 
$dossierExcel = New-Item -Path "\Users\christinefabre\Documents\powershell" -ItemType Directory -Name resultat-excel
#boucle pour la création de fichiers
foreach($fichier in $fichiers_originaux){
Import-Csv $fichier | Export-Excel $dossierExcel -Append -WorksheetName test.xlsx
}


Macintosh / Chrome 106.0.0.0

A voir également:

1 réponse

blux Messages postés 26542 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 21 décembre 2024 3 318
31 oct. 2022 à 22:43

Salut,

et c'est quoi qui ne fonctionne pas ? As-tu un message d'erreur ? Et quel est-il ?


0
brucine Messages postés 18327 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024 2 713
1 nov. 2022 à 08:39

Bonjour,

Sauf ânerie de ma part (c'est un job que je fais plus volontiers en Batch), la variable $fichier n'est pas définie et la boucle foreach est placée à l'extérieur de la commande listant les fichiers originaux de sorte qu'elle ne peut pas en prendre toutes les valeurs successives, ce qui signifie que l'on doit donc soit sortir la liste des fichiers d'entrée vers un fichier texte temporaire auquel on appliquera la boucle, soit rediriger ces fichiers en temps réels à partir du dossier d'entrée avec une commande pipe sur un mode de ce style:

Get-ChildItem $inputfolder\*.csv | ForEach-Object {

https://stackoverflow.com/questions/64332041/powershell-import-multiple-csv-files-to-excel-file-in-multiple-worksheets

0