📘 Guide de référence

Qu'est-ce qu'un XLSForm ?

Le XLSForm est le format qui permet de décrire un questionnaire de terrain dans un simple tableur, puis de le déployer sur KoboToolbox ou ODK. Voici sa structure, sa syntaxe, et comment le générer sans en écrire une ligne à la main.

XLSForm, en une phrase

Un XLSForm est un fichier tableur (Excel ou Google Sheets) qui décrit un questionnaire selon une convention précise, organisée en trois feuilles : survey, choices et settings. Ce fichier est ensuite compilé en XForms, le format XML que lisent réellement les applications de collecte — KoboCollect, ODK Collect ou le moteur web Enketo.

À retenir — le XLSForm n'est pas propre à Kobo : c'est un standard ouvert, partagé avec ODK et SurveyCTO. Un fichier bien construit s'importe sans modification sur les trois.

Les 3 feuilles d'un XLSForm

1. survey — les questions

La colonne vertébrale du formulaire, une ligne par question ou élément de structure.

typenamelabelrelevantconstraint
select_one oui_nona_recu_aideAvez-vous reçu l'aide ?
integermontant_recuMontant reçu (FCFA)${a_recu_aide} = 'oui'. >= 0

2. choices — les options de réponse

Les listes utilisées par les questions à choix (select_one, select_multiple), regroupées par list_name.

list_namenamelabel
oui_nonouiOui
oui_nonnonNon

3. settings — les réglages du formulaire

Titre, identifiant, version et langue par défaut du questionnaire.

form_titleform_idversiondefault_language
PDM Cash ECHOpdm_cash_echo_2026202607241fr

Les types de questions courants

  • text — réponse libre courte.
  • integer / decimal — valeur numérique.
  • select_one / select_multiple — choix unique ou multiple, défini dans choices.
  • date / dateTime — sélecteur de date.
  • geopoint — coordonnées GPS captées automatiquement.
  • image / audio — pièce jointe capturée sur l'appareil.
  • note — texte affiché, sans réponse attendue (consignes, transitions).
  • calculate — valeur calculée à partir d'autres réponses, invisible pour l'enquêteur.

Sauts logiques et contraintes

Deux colonnes, deux rôles très différents, souvent confondus :

  • relevant — contrôle si la question s'affiche. Si la condition est fausse, la question est masquée et ignorée (c'est le « saut logique »).
  • constraint — contrôle si une réponse est valide. La question reste affichée, mais la réponse est refusée tant que la condition n'est pas respectée.

Exemple : relevant: ${a_recu_aide} = 'oui' n'affiche « Montant reçu » que si la réponse précédente est « Oui ». constraint: . >= 0 refuse un montant négatif.

Groupes et répétitions

begin_group / end_group regroupent des questions liées (par exemple, un module « sécurité alimentaire »). begin_repeat / end_repeat répètent un bloc un nombre variable de fois — typiquement pour lister les membres d'un ménage un par un.

Le multilingue

Un même XLSForm peut porter plusieurs langues : il suffit de dupliquer les colonnes label en label::français (fr), label::english (en), etc. L'enquêteur choisit la langue au lancement du formulaire, sans dupliquer le fichier.

Erreurs fréquentes

  • Noms de variables incohérents — une faute de frappe dans un name casse silencieusement toutes les références qui pointent dessus.
  • list_name mal orthographié — une liste de choix introuvable rend la question invisible sans message d'erreur clair.
  • Sauts logiques en cascade non testés — un formulaire complexe avec beaucoup de relevant imbriqués doit être testé chemin par chemin, pas juste question par question.
  • Colonnes manquantes — une feuille settings incomplète (pas de form_id) bloque parfois l'import silencieusement.

Glossaire XLSForm

survey
La feuille des questions et de la structure du formulaire.
choices
La feuille des options de réponse, groupées par liste.
settings
La feuille des réglages globaux du formulaire (titre, id, langue).
relevant
Condition d'affichage d'une question (saut logique).
constraint
Condition de validité d'une réponse.
calculation
Formule utilisée par un champ calculate.
XForms
Le format XML compilé, effectivement lu par les applications de collecte.

Questions fréquentes

Qu'est-ce qu'un XLSForm exactement ?

Un XLSForm est un fichier tableur (Excel ou Google Sheets) qui décrit un questionnaire selon une convention précise : trois feuilles nommées survey, choices et settings. Ce fichier est ensuite compilé en XForms, le format XML que lisent les applications de collecte comme KoboCollect ou ODK Collect.

Quelle est la différence entre relevant et constraint ?

relevant contrôle si une question s'AFFICHE (saut logique) : si la condition est fausse, la question est masquée et ignorée. constraint contrôle si une réponse est VALIDE : la question reste affichée, mais la réponse est refusée tant qu'elle ne respecte pas la condition.

Peut-on générer un XLSForm sans connaître sa syntaxe ?

Oui. Des générateurs comme le XLS Form Builder d'Opti' créent un XLSForm complet à partir d'une description en langage naturel (« une PDM cash pour ECHO »), avec sections, sauts logiques et choix de réponses déjà écrits dans la bonne syntaxe, prêt à éditer et à importer.

Un XLSForm fonctionne-t-il sur Kobo ET sur ODK ?

Oui, dans l'immense majorité des cas. XLSForm est justement le format partagé entre KoboToolbox, ODK et SurveyCTO — c'est ce qui rend un questionnaire portable d'une plateforme à l'autre sans réécriture.

Générer un XLSForm avec Opti'

Opti' écrit la syntaxe XLSForm pour vous : décrivez votre enquête, et Opti Gemba génère un fichier complet — sections, sauts logiques, contraintes, multilingue — prêt à importer dans Kobo ou ODK.

Générez votre premier XLSForm en quelques minutes

Créez votre compte gratuit — sans carte bancaire — et obtenez un fichier prêt à importer.

Ouvrir Opti' →