On peut vous aider ?
Cherchez des réponses ou parcourez les rubriques de notre documentation
Import Excel : considérations pour le développement
Cet article est destiné aux développeurs. Pour l’aide utilisateur concernant l’import Excel, consultez : Travailler avec Excel : export et import.
Le classeur Excel dont les données sont importées dans le questionnaire doit avoir été préparé : des noms de zone Excel correspondant aux noms des composants doivent être placés sur les cellules Excel contenant les données. Un tel classeur est appelé matrice de saisie ou classeur de saisie.
Les matrices de saisie peuvent être simplement générées par l’Export XLSX depuis GTAnswer. C’est la solution à privilégier pour la simplicité de mise en œuvre.
Des matrices de saisie Excel avancées peuvent être conçues en définissant les noms de zone correspondant aux composants par des formules, ce qui permet par exemple des imports partiels (un exemple d’utilisation est fourni dans l’article Workflows informels de collecte)
Les noms de zone correspondant aux noms de zone Excel peuvent avoir deux formes :
– Nom_du_composant pour les anciennes matrices de saisie lorsque les en-têtes sont uniques pour tout le qstx
– Nom_du_Motif?Nom_du_composant pour les qstx à unicité par branche de compartiment, lorsque le composant se trouve dans un motif. Les noms de zone n’utilisent pas le préfixe Nom_du_Motif pour les composants en dehors de motifs (cf article Unicité des en têtes)
Import Excel dans des motifs
Tout motif doit posséder dans Excel une zone de nom Nom_de_motif.FOOTER qui permet de marquer la fin des motifs : – les lignes à importer d’Excel se trouvent au-dessus de cette zone. – les « lignes » dont toutes les valeurs de composants (avec les noms de zones Excel correspondant) sont vides sont ignorées lors de l’import. Si la zone Nom_de_motif.FOOTER n’est pas présente, le motif n’est pas importé. De façon à éviter aux utilisateurs de devoir insérer eux-mêmes des lignes à la fin du motif, il peut être opportun de prévoir, dans une conception manuelle d’une matrice de saisie, une zone de nom .FOOTER avec un peu plus de lignes que nécessaire. Néanmoins, prévoir un trop grand nombre de lignes vides peut être pénalisant pour l’import.Déroulement de l’import Excel dans un motif
Le terme « ligne » utilisé dans ce paragraphe et les suivants désigne une plage de cellule ayant les même dimensions (nombre de lignes et nombre de colonnes) que la plage de base du motif. – GTAnswer lit les données (zones de noms, etc…) d’Excel pour dénombrer les « lignes » non vides à inscrire dans le motif – Des « lignes » sont ajoutées ou supprimées dans le motif existant du questionnaire si le nombre de « lignes » à importer d’Excel est différent du nombre de ligne actuel du motif – La première « ligne » des données dans Excel vient écraser (pour les composants hors contrôle non verrouillés) la première « ligne » des données du motif, la deuxième « ligne » d’Excel vient écraser la deuxième « ligne » du motif, et ainsi de suite.Conception d’un motif autorisant l’import Excel
Règles de conception
Le fonctionnement décrit au paragraphe précédent induit que tout motif pour lequel l’import Excel est autorisé doit répondre aux critères suivants :- Le motif doit nécessairement comporter une clé, faute de quoi la gestion des conflits produira des résultats incohérents
- Si le motif n’a pas de clé, alors tous les composants doivent être modifiables ou utiliser des formules se basant sur une sous-clé propre à un item de la ligne : aucune valeur directement issue de la base client ne peut être inscrite dans le motif sans être modifiable.
- Si le motif contient des composants non modifiables par le correspondant (composants verrouillés), l’import Excel ne les modifiera pas, et les valeurs de ces composants verrouillés ne doivent pas avoir de signification (l’accès à ces composants doit être défini par la logique des questions et non être un droit d’accès pour le correspondant en tant qu’individu)