Intégration Excel-DB2 : procédure pas à pas
jeu 8 octobre 2020L’outil ACS (Access Client Solutions) d’IBM permet d’importer directement un fichier Excel dans une table DB2 sur IBM i. Cette méthode native évite les programmes RPG ou CL complexes et fonctionne dès IBM i 7.3 avec les bons PTF. Parfait pour les devs et admins qui reçoivent souvent des tableurs externes.
Contexte technique
ACS intègre un assistant d’import Excel dans son module Run SQL Scripts. Il parse le XLS/XLSX, mappe les colonnes et insère les données en base. Disponible via le client gratuit IBM i Access Client Solutions (téléchargeable sur ibm.com).
Procédure pas à pas avec ACS
Préparer le fichier
Voici un exemple :

Ouvrez ACS et cliquez sur l’outil « Transferts de données »

Une fenêtre propose deux options : « Vers IBM i » ou « Depuis IBM i », selon l’onglet sélectionné. Attention, cela correspond à l’outil classique de transfert qui exige une table DB2 préexistante. Nous allons d’abord créer la table sur l’IBM i, il s’agit d’une autre fonctionnalité accessible par le menu Actions ou par le raccourci Ctrl‑D.

Un assistant s’ouvre, faites « Page suivante ».

Saisissez le chemin vers le fichier source de vos données, puis faire « Page suivante ».

Choisissez le type de fichier source, vous avez le choix entre plusieurs possibilités : .csv avec colonnes séparées par une virgule, .txt avec colonnes séparées par une tabulation, .txt, .xlsx Excel récent, .xls Excel 1997–2003 et .ods openoffice. Dans notre exemple c’est un .xlsx.
Puis faites « Page suivante ».

L’assistant vous demande ensuite le nom du fichier de description du transfert qui sera créé. Vous pouvez garder le nom proposé, il sera stocké sur votre ordinateur dans le même dossier que le fichier source.

Sur la prochaine fenêtre, vous pouvez modifier en sélectionnant le bouton « Options de données » les options de données tel que le format de date, de l’heure, du séparateur décimal, du ccsid etc…

Sur cette page, vous indiquez éventuellement le début et la fin du tableau à transférer.

Puis l’assistant va scanner les colonnes pour déterminer le type de données qui y sont stockées. De plus, dans notre exemple, comme la 1re ligne contient des noms de colonnes, nous cochons la cas utilisée à cet effet.
Cliquez « sur Démarrage du scannage ». Si vous faites « Page suivante », vous aurez une alerte vous informant que cela n’a pas été fait et vous serez invité à le faire.

Après le scannage et avoir cliqué sur « Page suivante », vous obtenez le résultat : les champs, leur type et leur longueur. L’outil de transfert s’en servira pour créer la table DB2 sur l’IBM i. En cliquant sur « Détail », vous pourrez les modifier à votre guise.

Vous faites « Page suivante » et indiquez l’IBM i sur lequel vous créer la table de destination.

Puis le nom de la table à créer sous forme « Bibliothèque/Objet ». Vous pouvez utiliser le bouton « Survol » pour aller explorer l’IBM i.

Faites « Page suivante », l’assitant vous demande le texte descriptif de votre table.

Après avoir fait « Page suivante », vous obtenez un résumé de la création de table que vous allez effectuer.

Faites « Page suivante », la création de la table commence. Une fois fini, vous arrivez à la fin de l’assistant qui vous annonce que tout s’est bien passé.

Si des anomalies apparaissent, des messages vous alerterons et vous pourrez revenir en arrière sur l’assistant pour modifier vos saisis et corriger les problèmes rencontrés.
La 2me étape consiste à faire le transfert. Après avoir cliquer sur « Fin », vous revenez à la fenêtre traditionnelle de l’outil « Transfert de données ». Allez sur l’onglet « Vers IBM i ».
Dans la partie haute, saisissez ou utilisez « Survol » pour mettre le chemin du fichier source qui vous a servi à créer la table de destination.
Dans la partie basse, indiquez le chemin de votre table précédemment crée sur l’IBM i. Puis faites « Démarrer le transfert ».

Pendant le transfert, vous verrez le compte de ligne intégrée en bas à gauche s’incrémenté au fur et à mesure du transfert.
A la fin du transfert, et si tout se passe bien, une petite fenêtre s’affiche vous informant du bilan du transfert.

La table DB2 est remplie.


