On peut vous aider ?

Cherchez des réponses ou parcourez les rubriques de notre documentation

Voir aussi:

< All Topics
Print

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)

Ces règles de bonne conception s’appliquent à tout motif pour lequel les données doivent être importées d’Excel que celui-ci autorise ou non l’ajout ou la suppression de lignes.
Elles se basent sur les conséquences suivantes du fonctionnement décrit précédemment :
– les composants non saissables par le correspondant ne sont pas modifiés lors de l’import Excel.
– le tri ou le filtre est toujours permis dans Excel. Les données de la première ligne d’Excel iront écraser les données de la première ligne du qst et ainsi de suite.

Dans le cas d’un motif de saisie, la clé étant modifiable, si le motif de saisie devrait se limiter à une liste de clés spécifiques, une liste de référence des éléments à saisir peut être construite dans un autre motif.
Des gtcontraintes peuvent alors vérifier l’appartenance de chaque clé du motif de saisie à la liste de référence et réciproquement l’appartenance de chaque clé de référence au motif de saisie (des EQUIV peuvent être utiles dans ce cas)
Cette liste de référence pourra également servir à afficher des données « de référence » propres à chaque clé.

Import Excel Multi-onglet

Principe

L’import multi-onglet fonctionne à items fixes. Aucun onglet n’est ajouté ni supprimé par l’import.
Dans le cas d’un multi-onglet dynamique, les onglets devront être ajoutés à la main par le correspondant.

Le nom de l’axe de multi-onglets doit être compatible avec les noms de zone Excel.

Le lien entre les composants GT et le classeur Excel se fait par des zones nommées. En dehors du multi-onglet, ces zones sont globales. Dans les feuilles du multi-onglet les zones sont locales, y compris pour les footers de motif. Pour qu’Answer fasse le lien entre un item du multi-onglet et une feuille Excel, celle-ci doit contenir une zone locale de nom NOM_DE_L_AXE.MO dont la valeur est l’item du multi-onglet.

Import multi-onglets compatible Calc LibreOffice mais pas Calc OpenOffice

L’import de données vers un groupe de multi-onglets ne fonctionne qu’avec Microsoft Excel (versions 2000 et suivantes) ou la version Calc incluse dans LibreOffice.

Les données d’un classeur chargé dans Calc OpenOffice ne peuvent être importées dans un groupe de multi-onglets (ceci est lié à une restriction de fonctionnement d’OpenOffice qui n’autorise pas les noms de zone locaux à une feuille, au contraire d’Excel).

L’import Calc (OpenOffice) vers Excel peut cependant être utilisé sur les données hors multi-onglet d’un questionnaire.

Was this article helpful?
0 out Of 5 Stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
How can we improve this article?
How Can We Improve This Article?
Table of Contents