Importer les élèves en masse¶
En une phrase
L'import en masse transforme 3 heures de saisie manuelle pour 500 élèves en 30 secondes de traitement automatique. C'est l'outil indispensable pour la rentrée scolaire et les migrations depuis un autre système.
Cet article couvre les 3 formats supportés, le template fourni, le workflow complet, la résolution des erreurs ligne par ligne (le piège #1), l'encodage UTF-8 (le piège #2), et les bonnes pratiques pour ne pas perdre la moitié de votre fichier en chemin.
Pourquoi importer en masse¶
Comparaison brute¶
Saisie manuelle d'un élève : ~1-2 minutes.
| Volume | Saisie manuelle | Import en masse |
|---|---|---|
| 50 élèves | ~1h30 | 1 minute |
| 200 élèves | ~5h | 2 minutes |
| 500 élèves | ~13h | 5 minutes |
| 1000 élèves | ~26h (3 jours) | 10 minutes |
Conclusion : au-delà de 30 élèves, l'import en masse devient quasi-obligatoire.
Cas d'usage typiques¶
| Cas | Volume | Import recommandé ? |
|---|---|---|
| Rentrée scolaire | 50-2000+ | ✅ Obligatoire |
| Migration depuis autre système | tout l'historique | ✅ Obligatoire |
| Inscription en cours d'année (1 élève) | 1 | ❌ Manuel plus rapide |
| Reprise d'historique élèves anciens | variable | ✅ Si nombreux |
| Import régulier d'inscriptions externes | en flux | À automatiser via API (à venir) |
Pré-requis avant import¶
Vous ne pouvez PAS importer des élèves si :
- Les classes ne sont pas créées (l'import lie chaque élève à une classe existante par nom)
- L'année scolaire active n'est pas configurée
- Vous n'avez pas la permission
import.csv
Solution : configurer ces pré-requis d'abord (voir Checklist de rentrée).
Les 3 formats supportés¶
CSV (Comma-Separated Values)¶
Format universel : Excel, Google Sheets, LibreOffice, OpenOffice — tous savent l'ouvrir et l'exporter.
Avantages :
- Léger : un fichier de 1000 élèves fait ~50 Ko
- Lisible dans n'importe quel éditeur de texte (vérifications faciles)
- Standard : pas de format propriétaire bloquant
Inconvénients :
- Encodage UTF-8 obligatoire (sinon les accents se transforment en
é) - Risque de mauvais séparateur (virgule vs point-virgule)
- Risque de quoting incorrect si du texte contient des virgules
Quand l'utiliser : si vous êtes à l'aise avec Excel ou que vous générez le fichier par script.
XLSX (Excel)¶
Format Excel natif : mise en forme propre, multi-feuilles, formules conservées.
Avantages :
- Pas de problème d'encodage (UTF-8 nativement)
- Pas de problème de séparateur
- Visuel clair (couleurs, mise en forme)
- Multi-feuilles possibles (élèves + parents + classes dans le même fichier)
Inconvénients :
- Plus lourd (~3× le CSV)
- Nécessite un outil compatible (Excel, LibreOffice Calc, Google Sheets, Numbers Mac)
Quand l'utiliser : recommandé par défaut si votre équipe utilise Excel. C'est notre recommandation pour la plupart des écoles.
JSON (développeurs)¶
Format structuré pour les développeurs.
Avantages :
- Préserve les relations entre entités (parent → élèves multiples)
- Standard pour les API
- Idéal pour migration depuis un autre système
Inconvénients :
- Pas directement ouvrable dans Excel
- Lisible mais peu pratique pour humain
- Risque d'erreur de syntaxe (virgule oubliée, accolade non fermée)
Quand l'utiliser : si vous migrez depuis un système qui exporte en JSON, OU si vous avez un développeur qui peut générer le fichier.
Télécharger le template¶
Admin → Importation → onglet Élèves → Télécharger le modèle
Choisir le format :
eleves-template.csv: 3 lignes d'exemple + colonnes videseleves-template.xlsx: idem avec mise en formeeleves-template.json: structure JSON commentée
À ne pas oublier : le template a déjà les bonnes colonnes dans le bon ordre — ne pas les modifier (Argon les lit par nom).
Structure du fichier¶
Colonnes obligatoires¶
| Colonne | Type | Exemple | Notes |
|---|---|---|---|
prenom |
texte | Marie |
Capitalisation libre |
nom |
texte | Mballa |
Recommandé en majuscules |
date_naissance |
YYYY-MM-DD | 2014-03-15 |
Format strict ISO 8601 |
sexe |
M ou F | F |
Majuscule obligatoire |
classe_nom |
texte | 6A |
Exactement comme en DB |
Colonnes optionnelles¶
| Colonne | Type | Exemple | Notes |
|---|---|---|---|
matricule |
texte | (vide) | Vide → généré automatique |
parent_email |
marie.parent@gmail.com |
Crée le compte parent | |
parent_prenom |
texte | Antoine |
Optionnel si parent_email seul |
parent_nom |
texte | Mballa |
Idem |
parent_telephone |
texte | +237 6 95 12 34 56 |
Format international recommandé |
adresse |
texte | Bastos, Yaoundé |
Adresse postale |
photo_url |
URL | https://... |
Photo accessible publiquement |
groupe_sanguin |
A+/A-/B+/B-/AB+/AB-/O+/O- | O+ |
Pour dossier médical |
allergies |
texte | Arachides |
Pour dossier médical |
notes_admin |
texte | Élève transféré de St-Joseph |
Note interne admin |
Format strict des dates¶
⚠️ Une seule forme acceptée : YYYY-MM-DD (norme ISO 8601).
Bon : 2014-03-15, 2008-11-30
Mauvais :
15/03/2014(format français) → refusé15-03-2014(séparateur tirets) → refusé2014/03/15(slash) → refuséMar 15, 2014(texte) → refusé
Pourquoi ce format strict : il est non ambigu internationalement (15/03 ≠ 03/15 selon les pays), et trié naturellement par ordre alphabétique.
Comment convertir dans Excel : sélectionner la colonne → Format cellules → Personnalisé → AAAA-MM-JJ.
Workflow d'import¶
Étape 1 : préparer le fichier¶
Dans Excel¶
- Ouvrir le template
- Coller depuis votre fichier source (extrait de votre ancien système, liste manuelle, etc.)
- Vérifier ligne par ligne au moins les 5 premières :
- Date au format
YYYY-MM-DD - Sexe en
MouF(majuscule) - Classe correspondant exactement à une classe existante
- Pas de cellule cassée (#REF, #N/A)
- Date au format
- Enregistrer sous :
- Pour CSV →
Fichier → Enregistrer-sous → CSV UTF-8 (séparateur virgule) - Pour XLSX → juste sauvegarder normalement
- Pour CSV →
Le piège Excel UTF-8
Excel a 3 options "CSV" différentes :
- CSV (séparateur point-virgule) : pas standard, à éviter
- CSV (séparateur virgule) : standard mais encodage Windows, accents cassés ❌
- CSV UTF-8 (séparateur virgule) : bon choix ✅
Choisissez TOUJOURS "CSV UTF-8". Sinon vos é, à, ç, ô deviennent é, Ã, ç, ô.
Dans Google Sheets (alternative recommandée)¶
- Ouvrir le template
- Coller données
- Fichier → Télécharger → Valeurs séparées par des virgules (.csv)
Google Sheets exporte toujours en UTF-8 — pas de risque d'encodage.
Étape 2 : uploader¶
Admin → Importation → onglet Élèves → Téléverser le fichier
Glisser-déposer OU sélectionner.
Étape 3 : aperçu (dry-run)¶
Argon affiche un aperçu des 5 premières lignes :
- Lecture des colonnes (le nom de colonne correspond bien à ce qu'on attend ?)
- Détection automatique du séparateur
- Détection de l'encodage
- Détection des erreurs visibles (date mal formatée, sexe invalide)
Si l'aperçu est bon : confirmer pour lancer le traitement complet.
Si erreurs détectées : corriger le fichier source + re-uploader.
Étape 4 : traitement¶
Argon traite chaque ligne :
- Vérifie les champs obligatoires
- Vérifie le format
- Vérifie l'unicité (matricule)
- Vérifie l'existence des classes référencées
- Crée l'élève
- Crée ou lie le compte parent si
parent_emailfourni
Performance : ~30-50 élèves traités par seconde. 500 élèves → ~15 secondes.
Étape 5 : rapport de résultat¶
À la fin, Argon affiche :
✅ 247 élèves créés
✅ 198 comptes parents créés
⚠️ 3 erreurs :
Ligne 142 : Matricule "INS-26-A2B4C" déjà utilisé
Ligne 198 : Classe "Terminale Z" inexistante
Ligne 201 : Sexe "X" invalide (doit être M ou F)
📥 Télécharger le rapport complet (CSV)
Les lignes valides sont créées. Les lignes en erreur sont sautées sans bloquer le reste.
Étape 6 : corriger les erreurs et relancer¶
- Télécharger le rapport CSV des erreurs
- Corriger les lignes dans votre fichier source
- Garder uniquement les lignes en erreur (Argon est idempotent — ne re-créera pas les déjà créées)
- Re-uploader le fichier corrigé
Erreurs courantes (table de référence)¶
| Erreur | Cause | Solution |
|---|---|---|
Sexe "X" invalide |
Valeur ≠ M/F (cas majuscule) | Mettre M ou F (majuscule) |
Classe "..." inexistante |
Faute frappe OU classe pas créée | Créer la classe OU corriger l'orthographe |
Date invalide : 15/03/2014 |
Format ≠ YYYY-MM-DD | Reformater en 2014-03-15 |
Matricule déjà utilisé |
Doublon avec un élève existant | Vide pour génération auto OU choisir autre |
Email parent invalide |
Format email incorrect (espace, sans @) | Corriger format |
Caractères illisibles (é) |
Encodage non UTF-8 | Re-enregistrer en CSV UTF-8 |
Trop de colonnes |
Mauvaise détection séparateur | Vérifier que le séparateur est virgule (pas ;) |
Pas de colonne "prenom" |
Mauvais nom de colonne | Respecter exactement le nom du template |
Date de naissance dans le futur |
Erreur de frappe (2114 au lieu de 2014) |
Corriger |
Sexe "f" |
Minuscule | Mettre F (majuscule) |
Téléphone format invalide |
Caractères non numériques (ex : tel:) |
Nettoyer le format |
Cas particuliers¶
Plusieurs enfants pour un même parent_email¶
Cas : Mme Mballa a 3 enfants dans l'école, vous l'importez 3 fois.
Comportement : Argon détecte le doublon d'email. La 1re ligne crée le compte parent. Les 2 suivantes lient les enfants au compte existant — pas de doublon de compte.
Vérification : après import, le compte parent voit ses 3 enfants dans /parent/mes-enfants.
Caractères spéciaux dans les noms (Ç, É, Ô, à, é)¶
Bonne approche :
- Toujours UTF-8
- Toujours utiliser Google Sheets ou "CSV UTF-8" dans Excel
- Tester sur 1 ligne d'exemple avec accents avant l'import massif
Si vous voyez é côté admin après import : l'encodage est mauvais. Re-faire avec UTF-8 strict.
Élèves déjà existants (mise à jour vs création)¶
Argon v1 (limitation actuelle) : l'import en masse est création seule.
Si vous tentez d'importer un élève qui existe déjà (même prénom + nom + date naissance) :
- Argon crée un doublon (sans bloquer)
- À gérer manuellement (supprimer le doublon)
Roadmap : mode "mise à jour" qui détecte les existants et les met à jour. À venir.
Photos d'élèves¶
Le champ photo_url permet d'importer des photos via une URL accessible publiquement.
Workflow :
- Uploader vos photos sur un serveur web (Cloudinary, AWS S3, ou même Google Drive en partage public)
- Remplir la colonne
photo_urlavec l'URL de chaque photo - Argon télécharge et stocke chaque photo lors de l'import
Limites :
- Format accepté : JPG, PNG, WebP
- Taille max : 5 Mo par photo
- Si URL invalide ou inaccessible : l'élève est créé sans photo (pas bloquant)
Élèves transférés depuis une autre école¶
Cas spécial : importer des élèves avec leur historique (anciennes notes, anciens bulletins).
Argon v1 : import des élèves possible, mais pas l'historique automatiquement.
Procédure :
- Importer les élèves (CSV)
- Saisir manuellement les bulletins d'années précédentes (champ "Bulletin importé") OU les attacher en pièce jointe scan
- Marquer les élèves avec
notes_admin = "Transféré de [école]"pour traçabilité
Roadmap : import d'historique complet via JSON structuré. À venir.
Mises à jour ponctuelles (changement adresse de 100 élèves)¶
Pour une mise à jour en masse de champs sur des élèves existants (sans création) :
Argon v1 : pas natif. Workaround :
- Exporter les élèves en XLSX (
Admin → Exports → Élèves → XLSX) - Modifier la colonne souhaitée
- Pas de réimport (créerait des doublons)
- Utiliser l'API admin (avancé)
Roadmap : mode "update by matricule" dans l'import. À venir.
Bonnes pratiques¶
Avant l'import¶
- ✅ Tester sur 5 élèves d'abord avant le gros lot
- ✅ Vérifier les classes existent avec le nom exact attendu
- ✅ Aligner la convention nom/prénom (capitalisation cohérente)
- ✅ Format de date unifié dans toutes les lignes
- ✅ Encodage UTF-8 explicite (vérifier dans un éditeur texte si possible)
Pendant l'import¶
- ✅ Lire attentivement l'aperçu avant de confirmer
- ✅ Ne pas fermer l'onglet pendant le traitement (peut couper l'import)
Après l'import¶
- ✅ Compter : nombre d'élèves attendus = nombre d'élèves importés ?
- ✅ Vérifier 5 élèves au hasard : profil + parent rattaché + classe
- ✅ Notifier les parents avec leur code d'activation (annonce groupée)
- ✅ Conserver le fichier source pour traçabilité
À éviter¶
- ❌ Importer 2 fois le même fichier (créerait des doublons si pas de détection d'existence)
- ❌ Modifier le template (en ajoutant des colonnes inconnues)
- ❌ Mélanger plusieurs années scolaires dans le même import
- ❌ Importer pendant l'année scolaire sans vérification (préférer en pré-rentrée)
Sécurité¶
Permissions¶
L'import en masse nécessite la permission import.csv. Par défaut accordée aux admins, mais peut être retirée pour des comptes admin restreints (secrétariat).
Audit log¶
Chaque import est tracé dans Admin → Audit → Action: IMPORT :
- Qui a importé
- Quel fichier (nom + taille)
- Nombre de lignes traitées
- Nombre d'erreurs
- Date + heure
Conservation : 5 ans.
Limite de taille¶
- CSV / XLSX : max 50 000 lignes par fichier
- JSON : max 100 000 entités
Au-delà : découper en plusieurs fichiers.
Modules importables (au-delà des élèves)¶
Argon propose l'import en masse pour plusieurs entités :
| Module | Endpoint | Notes |
|---|---|---|
| Élèves | Admin → Importation → Élèves |
Le plus utilisé |
| Parents | Admin → Importation → Parents |
Pour créer des comptes sans élèves liés |
| Enseignants | Admin → Importation → Enseignants |
Avec matières affectées |
| Classes | Admin → Importation → Classes |
Niveau + effectif |
| Matières | Admin → Importation → Matières |
Coefficients |
| Notes | Admin → Importation → Notes |
Import en masse pour migration |
| Frais | Admin → Importation → Frais |
Grille tarifaire complète |
| Emploi du temps | Admin → Importation → EDT |
Depuis EDT/ADE/Hyperplanning |
Chaque module a son template dédié. Workflow identique (télécharger, remplir, uploader, aperçu, confirmer).
Checklist d'import réussi¶
Avant import :
- Classes créées dans Argon avec noms exacts
- Année scolaire active configurée
- Fichier source nettoyé (pas de lignes vides, pas de #REF)
- Format de date
YYYY-MM-DDpartout - Sexe en
MouF(majuscule) - Encodage UTF-8 confirmé
Pendant :
- Aperçu lu attentivement avant confirmation
- Pas de fermeture d'onglet pendant le traitement
Après :
- Nombre d'élèves créés = attendu
- Erreurs corrigées et ré-importées (lignes manquantes)
- Vérification de 5 élèves au hasard
- Annonce parents publiée
- Fichier source archivé
Voir aussi¶
- Créer un élève — création manuelle (alternative)
- Transférer un élève — changement de classe
- Checklist de rentrée — workflow global
- Exporter en PDF — opération inverse (sortie de données)
- FAQ — Import — questions admins