Question
Mise en forme d'un CSV | Trier par date
- Zamboni
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 1 an 11 mois - il y a 1 an 11 mois #32295
par Zamboni
Mise en forme d'un CSV | Trier par date a été créé par Zamboni
Bonjour,
A partir d'un fichier txt (ou csv) ou j'ai déjà des données, je cherche à mettre mes données sous la forme de deux colonnes pour Excel (au format .CSV)
J'ai deux types de données:
- Date --> dd/mm/aaaa hh:mm
- Nombre
Ce qui donnerait:
ACTUELLEMENT en .TXT et CSV
RÉSULTAT SOUHAITÉ en .CSV dans Excel
Détails:
- Mon script actuel récupère tous les fichiers en .rpt d'un dossier, extrait le rapport journalier "23h30" de chacun, et sort en un fichier qui liste tout ça
- Mon but est d'automatiser un doc Excel qui recense des rapports journalier
Au passage, savez vous s'il est possible de trier en fonction de la date? Excel exécute dans l'ordre des lignes à la sortie de mon fichier .csv (par exemple 12mai avant le 13avril)
Merci d'avance pour vos réponses
A partir d'un fichier txt (ou csv) ou j'ai déjà des données, je cherche à mettre mes données sous la forme de deux colonnes pour Excel (au format .CSV)
J'ai deux types de données:
- Date --> dd/mm/aaaa hh:mm
- Nombre
Ce qui donnerait:
ACTUELLEMENT en .TXT et CSV
01-05-2022 23:30
0
02-05-2022 23:30
42
03-05-2022 23:30
53
RÉSULTAT SOUHAITÉ en .CSV dans Excel
Date Déconnexions
01/05/2022 22:30 0
02/05/2022 22:30 42
03/05/2022 22:30 53
Détails:
- Mon script actuel récupère tous les fichiers en .rpt d'un dossier, extrait le rapport journalier "23h30" de chacun, et sort en un fichier qui liste tout ça
- Mon but est d'automatiser un doc Excel qui recense des rapports journalier
Au passage, savez vous s'il est possible de trier en fonction de la date? Excel exécute dans l'ordre des lignes à la sortie de mon fichier .csv (par exemple 12mai avant le 13avril)
Merci d'avance pour vos réponses
Dernière édition: il y a 1 an 11 mois par Zamboni.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 1 an 11 mois #32298
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Mise en forme d'un CSV | Trier par date
salut,
une possibilité :
une possibilité :
gc c:\temp\datas.txt -ReadCount 2 |% {$o=1|select-object date,Déconnexions;$o.Date=$_[0];$o.Déconnexions=$_[1] ;$o }
Tutoriels PowerShell
Les utilisateur(s) suivant ont remercié: Zamboni
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 1 an 11 mois #32299
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Mise en forme d'un CSV | Trier par date
ou en + lisible
gc c:\temp\datas -ReadCount 2 |% { New-Object -TypeName psCustomObject -Property @{Date=$_[0];Déconnexions=$_[1]} }
Tutoriels PowerShell
Les utilisateur(s) suivant ont remercié: Zamboni
Connexion ou Créer un compte pour participer à la conversation.
- Zamboni
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 1 an 11 mois - il y a 1 an 11 mois #32302
par Zamboni
Réponse de Zamboni sur le sujet Mise en forme d'un CSV | Trier par date
Salut,
Merci pour les réponses, mais je n'ai pas réussi à résoudre le problème en creusant ta piste.
En effet, avec ton code, sur le prompte tout sort parfaitement (dans 2 colonnes distinctes nommées Date et Déconnexions)
Mais voici ce qui sort sur Excel en .csv (ainsi qu'en txt ou en xls)
J'ai essayé d'adapter chacun de tes 2 codes, de l'associer, avec un Sort-Object et/ou Format Table -Property, mais je n'ai pas réussi à régler le soucis.
Merci pour les réponses, mais je n'ai pas réussi à résoudre le problème en creusant ta piste.
En effet, avec ton code, sur le prompte tout sort parfaitement (dans 2 colonnes distinctes nommées Date et Déconnexions)
Mais voici ce qui sort sur Excel en .csv (ainsi qu'en txt ou en xls)
A B
@{Date=01-05-2022 23:30:01 Déconnexions=0}
@{Date=02-05-2022 23:30:01 Déconnexions=42 }
J'ai essayé d'adapter chacun de tes 2 codes, de l'associer, avec un Sort-Object et/ou Format Table -Property, mais je n'ai pas réussi à régler le soucis.
Dernière édition: il y a 1 an 11 mois par Zamboni.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 1 an 11 mois - il y a 1 an 11 mois #32303
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Mise en forme d'un CSV | Trier par date
Salut,
la forme @{Date=01-05-2022 23:30:01 Déconnexions=0} indique que tu traites l'objet comme une string, ici c'est la représentation d'un PSCustomObject :
C'est un autre pb et sans le code qui génére le résultat difficile de t'aider.
En passant Format-Table est dédié à la console.
la forme @{Date=01-05-2022 23:30:01 Déconnexions=0} indique que tu traites l'objet comme une string, ici c'est la représentation d'un PSCustomObject :
$Objet=1|select Date,Déconnexions
$Objet.ToString()
#chaine vide
"$Objet" #Transformation interne par PS lors d'une substitution
#@{Date=; Déconnexions=}
C'est un autre pb et sans le code qui génére le résultat difficile de t'aider.
En passant Format-Table est dédié à la console.
Tutoriels PowerShell
Dernière édition: il y a 1 an 11 mois par Laurent Dardenne. Raison: balise code
Les utilisateur(s) suivant ont remercié: Zamboni
Connexion ou Créer un compte pour participer à la conversation.
- Zamboni
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 1 an 11 mois #32305
par Zamboni
Réponse de Zamboni sur le sujet Mise en forme d'un CSV | Trier par date
Merci pour ton aide et la réponse,
Mon code génère ce fichier, à partir d'une 15aine de log.rpt d'environ 1700 à 7k lignes chacun (version .txt en PJ)
(Je sais que c'est une usine à gaz qui tient avec des bouts de ficelles, mais c'est fonctionnel ah ah)
Une fois Excel, si je met à la main les dates et les déco en colonnes, avec la fonction tri, les dates se mettent dans le bon ordre
Mon code génère ce fichier, à partir d'une 15aine de log.rpt d'environ 1700 à 7k lignes chacun (version .txt en PJ)
(Je sais que c'est une usine à gaz qui tient avec des bouts de ficelles, mais c'est fonctionnel ah ah)
cls
<# ♣ LIGNES A REMPLIR ♣ : 6/ 25/ 26/ 30/ 31
♣ A REMPLIR : DOSSIER ou sont stockés les logs. Garder le "\*.rpt"
Exemple: C:\xxx\yyy\*.rpt #>
$a = Get-Content C:\Users\zambonis\EXL\Logirpt\*.rpt |
<# Épure le log : Ne garde que le résumé du rapport de hh:mm
Si besoin de plus d'heures/ modifier l'heure voulue:
--> -match 'rows selected|hh:mm|hh:mm|hh:mm'
--> -Pattern "hh:mm|hh:mm|hh:mm" #>
Where-Object {$_ -match 'rows selected|23:30'} |
Select-string -Pattern "23:30" -Context 0,1
# NE PAS TOUCHER : Mise en forme
$b = $a -replace '>|rows selected.',''
$c = $b -replace ' no rows selected',' 0'
$d = $c -replace '[ ]+',' ' |
<# ♣ A REMPLIR : Désignez le chemin du DOSSIER du csv.
- Mettre le même chemin aux 4 liens suivants
- Garder le ".csv" et les "\temp.txt" à la fin.
Exemples: "C:\xxx\yyy\zzz.csv" et "C:\xxx\yyy\temp.txt" #>
Set-Content C:\Users\zambonis\EXL\Logicsv\temp.txt
$e = Get-content C:\Users\zambonis\EXL\Logicsv\temp.txt
$f = $e.Substring(1) |
# ♣ A REMPLIR : Nommer le .csv: "c:\xxx\yyy\NOM.csv"
Set-Content C:\Users\zambonis\EXL\Logicsv\test3.csv
Remove-Item C:\Users\zambonis\EXL\Logicsv\temp.txt
Une fois Excel, si je met à la main les dates et les déco en colonnes, avec la fonction tri, les dates se mettent dans le bon ordre
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.124 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Mise en forme d'un CSV | Trier par date