Altova MapForce 2024 Enterprise Edition

Exemple : Convertir Excel en JSON

Accueil Préc Haut Suivant

Cet exemple vous montre comment créer un document JSON à partir d'un fichier Excel avec MapForce. Le classeur Excel de source comporte deux feuilles de calcul : Office et Staff. La feuille Office fourni des informations concernant l'adresse de l'entreprise, alors que la feuille Staff recense tous les employés.

mf_json_06

Feuille de calcul du personnel

Les exigences commerciales sont les suivantes :

 

1.Extraire des données depuis le fichier Excel et les convertir en un document JSON.

2.Le fichier JSON doit spécifier, pour chaque employé, si leur numéro de poste peut être partagé pour les contrats externes. Seuls les numéros de poste des employés du département Marketing et Administration peuvent être partagés extérieurement.

3.Les partages de chaque employé doivent être indiqués dans le fichier JSON en tant que valeur numérique qui peut contenir zéro. S'ils ne sont pas connus, les partages doivent être indiqués en tant que null dans le fichier JSON.

 

Le mappage qui accomplit l'objectif ci-dessus est illustré ci-dessous. Ce mappage est disponible dans le chemin suivant : <Documents>\Altova\MapForce2024\MapForceExamples\\Excel_Company_To_JSON.mfd.

mf_json_07

Excel_Company_To_JSON.mfd

Comme indiqué ci-dessus, le mappage consiste en un composant Excel de source et un composant JSON de cible. Veuillez noter que les deux feuilles de calcul du fichier Excel apparaissent telles que dans le composant Excel de source. Le nom de l'entreprise est mappé depuis la feuille de calcul Office, tandis que le reste des champs sont mappés depuis la feuille de calcul Staff. Pour consulter la manière dont le mappage est configuré pour lire des données en ligne depuis chaque feuille de calcul, cliquer sur la touche AddRemove_Selections correspondante. En ce qui concerne la feuille de calcul Staff, les paramètres sont illustrés ci-dessous.

mf_json_08

Les paramètres ci-dessus instruisent le mappage à lire des lignes commençant à partir de 1 jusqu'à la fin (dynamiquement). La première ligne est une en-tête avec des noms de colonne, donc la case à cocher Première ligne est l'en-tête... est sélectionnée. Le dialogue spécifie aussi le type de colonnes A jusqu'à G, et le nom avec lequel chaque colonne apparaît sur le mappage. Pour plus d'informations concernant les composants Excel, voir Microsoft OOXML Excel 2007+.

 

Le composant de cible est une structure JSON. Vous pouvez ajouter des composants JSON dans le mappage tel que décrit dans Ajouter des fichiers JSON en tant que mappage. La structure montre le schéma JSON, employees.schema.json, qui est disponible dans le même dossier que le mappage. Pour plus d'informations concernant la configuration du composant JSON, voir Paramètres de composant JSON.

 

Il existe plusieurs composants intermédiaires dans le mappage. Le premier est un composant value-map. Le value-map décide, sur la base du département, si le numéro de téléphone peut être partagé extérieurement. Cela correspond aux exigences commerciales #2 ci-dessus. Vous pouvez consulter les paramètres du composant value-map en double-cliquant sur sa barre de titre :

mf_json_09

La configuration ci-dessus peut être résumée comme suit : Si Department est "Administration" ou "Marketing", le retour est true. Sinon, le retour est false. La valeur true ou false calculée de cette manière est ensuite rédigée dans la propriété JSON cible. Pour plus d'informations concernant les value maps, voir Utiliser Value-Maps.

 

Finalement, le mappage utilise la fonction exists dont l'objectif est de déterminer, dans le contexte de chaque ligne, si une valeur Shares existe dans le fichier Excel de source. Cette fonction retourne une valeur booléenne true si la valeur existe, ou false sinon. La valeur résultante true ou false est ensuite fournie en tant qu'entrée dans une condition If-Else. Si false, un string vide fourni par une constante est passé dans l'item Shares as null. Cette valeur nulle deviendra un null dans le fichier JSON résultant, puisqu'il s'agit du type de données de l'item Shares as null, comme indiqué par l'icône disp_jsonnull.

 

Si la valeur de partage des employés est numérique, elle ne remplira plus la condition If-Else. Au lieu de cela, elle sera rédigée dans l'item de cible Shares as number (qui est de type numérique disp_jsonnumber), par le biais d'une connexion séparée.

 

Pour plus d'informations pour ajouter des fonctions dans un mappage, voir Ajouter une fonction dans le mappage. Les conditions If-Else sont traités avec plus de détails sous Filtres et Conditions.

 

Exécuter le mappage

Pour consulter le fichier généré dans MapForce, cliquer sur l'onglet Sortie. L'image ci-dessous illustre uniquement un fragment du fichier JSON résultant.

mf_json_10

Sortie de mappage

Pour enregistrer la sortie de mappage dans un fichier, voir ci-dessous :

 

Dans le menu Sortie, cliquer sur Enregistrer fichier de sortie.

Cliquer sur la touche de la barre d'outils Enregistrer sortie générée ic-save-sel-string.

 

Automatisation avec MapForce Server

Si vous avez mis MapForce Server sous licence, vous pouvez aussi exécuter le mappage dans la ligne de commande, sur un appareil Linux, macOS, ou Windows. Noter que les mappages en cours sur un serveur nécessitent généralement quelques étapes supplémentaires telles que définies dans Préparer des mappages pour l'exécution de Server. Ci-dessous vous trouverez les étapes nécessaires pour exécuter ce type de mappage sur un serveur :

 

1.Cliquer avec la touche de droite sur le mappage et choisir Paramètres de mappage depuis le menu contextuel. Assurez-vous de décocher la case Rendre chemin absolu dans le code généré et enregistrer le mappage.

2.Dans le menu Fichier, cliquer sur Compiler dans le fichier d'exécution MapForce Server. Cela génère un fichier exécutable .mfx dans le répertoire <Documents>\Altova\MapForce2024\MapForceExamples\.

3.Copier le fichier .mfx généré dans un répertoire sur le serveur (appelons-le le "répertoire de travail").

4.Copier le fichier depuis <Documents>\Altova\MapForce2024\MapForceExamples\\Nanonull Inc.xlsx vers le répertoire de travail sur l'appareil de serveur.

5.Ouvrir un terminal et changer le répertoire actuel dans le répertoire de travail.

6.Exécuter MapForce Server avec la commande ci-dessous. Ajuster mapforceserver_exec pour qu'il soit le chemin menant à l'exécutable du MapForce Server tel qu'applicable pour votre système d'exploitation.

 

mapforceserver_exec run Excel_Company_To_JSON.mfx

 

Dans l'exécution de serveur, vous pouvez aussi exécuter des mappages en tant qu'appel API, ou en tant que tâches FlowForce Server, soit sur demande, soit sur base récurrente. Pour plus d'informations, voir Compiler des mappages dans les fichiers d'exécution MapForce Server.

© 2018-2024 Altova GmbH