Question
Recuperer valeur d'une cellule d'un fichier CSV
- nicolas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 13 ans 8 mois #12254
par nicolas
Recuperer valeur d'une cellule d'un fichier CSV a été créé par nicolas
Bonjour,
J'ai un fichier CSV de cette forme :
unUser;grp-00_ts_adarp14
unAutreUser;grp-00_excel_interdit
tjrsUnAutreUser;grp-00_ts;grp-00_ts_adarp14
j'aimerais bien récupérer dans une variable la valeur de la première cellule de la première ligne, comment dois-je faire ?
[code:1]
#
# Import des 2 CSV
#
try
{
$csv_Ajout = Import-Csv c:\scripts\groupes_a_ajouter.csv -Delimiter \";\"
$scv_Suppr = Import-Csv c:\scripts\groupes_a_retirer.csv -Delimiter \";\"
}
catch
{
[system.windows.forms.messagebox]::«»show(\"Veuillez placer les fichiers CSV dans C:\scripts\\"«»)
}
$valeur=($csv_Ajout[1])
[/code:1]
Merci de vos réponses
<br><br>Message édité par: nicodeff, à: 27/06/12 13:43
J'ai un fichier CSV de cette forme :
unUser;grp-00_ts_adarp14
unAutreUser;grp-00_excel_interdit
tjrsUnAutreUser;grp-00_ts;grp-00_ts_adarp14
j'aimerais bien récupérer dans une variable la valeur de la première cellule de la première ligne, comment dois-je faire ?
[code:1]
#
# Import des 2 CSV
#
try
{
$csv_Ajout = Import-Csv c:\scripts\groupes_a_ajouter.csv -Delimiter \";\"
$scv_Suppr = Import-Csv c:\scripts\groupes_a_retirer.csv -Delimiter \";\"
}
catch
{
[system.windows.forms.messagebox]::«»show(\"Veuillez placer les fichiers CSV dans C:\scripts\\"«»)
}
$valeur=($csv_Ajout[1])
[/code:1]
Merci de vos réponses
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 13 ans 8 mois #12260
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Recuperer valeur d'une cellule d'un fichier CSV
pour la première ligne, cela sera simple avec :
[code:1]
$csv_Ajout[0]
[/code:1]
Car le Import-Csv génère un tableau d'objet.
Par contre, Il faut savoir que avec le Import-Csv : la première ligne est celle des headers.
Donc dans ton cas, tu vas perdre une donnée, construis ton csv de cette façon plutôt :
Et comme cela, tu auras des objets avec deux propriétés (UserName et GroupName)
Pour parcourir tout cela :
Import-Csv c:\scripts\groupes_a_ajouter.csv -Delimiter \";\" | ForEach-Object { $_ }
[code:1]
$csv_Ajout[0]
[/code:1]
Car le Import-Csv génère un tableau d'objet.
Par contre, Il faut savoir que avec le Import-Csv : la première ligne est celle des headers.
Donc dans ton cas, tu vas perdre une donnée, construis ton csv de cette façon plutôt :
UserName;GroupName
unUser;grp-00_ts_adarp14
unAutreUser;grp-00_excel_interdit
tjrsUnAutreUser;grp-00_ts;grp-00_ts_adarp14
Et comme cela, tu auras des objets avec deux propriétés (UserName et GroupName)
Pour parcourir tout cela :
Import-Csv c:\scripts\groupes_a_ajouter.csv -Delimiter \";\" | ForEach-Object { $_ }
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- nicolas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 13 ans 8 mois #12261
par nicolas
Réponse de nicolas sur le sujet Re:Recuperer valeur d'une cellule d'un fichier CSV
Bonsoir,
Le problème c'est que je peux avoir plusieurs groupName pour un User, le CSV peux donc ressembler à ça:
[code:1]
dkXXX;grp-20_prestataire_r;grp-20_comptabilite_w;grp-20_comptabilite_r;grp-30_documentation_w;grp-40_agenda_w
dlXXX;grp-30_documentation_r;grp-40_agenda_w;grp-40_agenda_r
lhXXX;grp-03_service_mandataire_r;grp-03_service_prestataire_w;grp-03_service_prestataire_r;grp-03_service_comptabilite_w
mdXXX;grp-11_juridique_r;grp-11_recrutement_r;grp-11_juridique_w;grp-11_formation_w;grp-11_recrutement_w
[/code:1]
Alors je risque d'avoir du mal à les classer...
Le problème c'est que je peux avoir plusieurs groupName pour un User, le CSV peux donc ressembler à ça:
[code:1]
dkXXX;grp-20_prestataire_r;grp-20_comptabilite_w;grp-20_comptabilite_r;grp-30_documentation_w;grp-40_agenda_w
dlXXX;grp-30_documentation_r;grp-40_agenda_w;grp-40_agenda_r
lhXXX;grp-03_service_mandataire_r;grp-03_service_prestataire_w;grp-03_service_prestataire_r;grp-03_service_comptabilite_w
mdXXX;grp-11_juridique_r;grp-11_recrutement_r;grp-11_juridique_w;grp-11_formation_w;grp-11_recrutement_w
[/code:1]
Alors je risque d'avoir du mal à les classer...
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 13 ans 8 mois #12262
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Recuperer valeur d'une cellule d'un fichier CSV
Le problème, c'est que le Import-CSV ne va plus fonctionner.
Je te propose de remplacer les \";\" pour la partie des groupe par des \",\" et de faire un Split :
[code:1]
$_.GroupName.Split(\",\"«»)
[/code:1]
Qui va te retourner un tableau, que tu pourras traité avec un ForEach :
[code:1]
Import-Csv c:«»scriptsgroupes_a_ajouter.csv -Delimiter \";\" | ForEach-Object {
$UserName = $_.UserName
$_.GroupName.Split(\",\"«») | ForEach-Object {
# Ajout du user $UserName dans le groupe $_
}
}
[/code:1]
Je te propose de remplacer les \";\" pour la partie des groupe par des \",\" et de faire un Split :
[code:1]
$_.GroupName.Split(\",\"«»)
[/code:1]
Qui va te retourner un tableau, que tu pourras traité avec un ForEach :
[code:1]
Import-Csv c:«»scriptsgroupes_a_ajouter.csv -Delimiter \";\" | ForEach-Object {
$UserName = $_.UserName
$_.GroupName.Split(\",\"«») | ForEach-Object {
# Ajout du user $UserName dans le groupe $_
}
}
[/code:1]
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- nicolas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 13 ans 8 mois #12268
par nicolas
Réponse de nicolas sur le sujet Re:Recuperer valeur d'une cellule d'un fichier CSV
Merci de ton aide.
Comment le programme sait que la première colonne est le UserName et les autres le groupName ?
Désolé de t’embêter comme ça Richard Lazaro
Comment le programme sait que la première colonne est le UserName et les autres le groupName ?
Désolé de t’embêter comme ça Richard Lazaro
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 13 ans 8 mois #12269
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Recuperer valeur d'une cellule d'un fichier CSV
Alors, là on parle pas vraiment de première et dernière colonne mais on rentre dans le modèle objet
C'est un peu compliqué à expliquer, c'est le même fonctionnement que les headers avec un Excel au final sauf que là on génère des objets.
C'est un peu compliqué à expliquer, c'est le même fonctionnement que les headers avec un Excel au final sauf que là on génère des objets.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.050 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Recuperer valeur d'une cellule d'un fichier CSV