Gérer des fichiers Excel xls et xlsx
mer 15 mai 2019XLPARSE4 est un programme de service mis à disposition par Scott Klement qui permet de lire des fichiers Excel Xls et Xlsx à partir de procédures Rpg ile. Cet utilitaire fait appel à des classes JAVA du projet Jakarta : Apache POI
Présentation
A partir du moment où vous avez installé les classes JAVA nécessaires, les procédures de Scott Klement permettent à des programmes Rpg ile de les appeler de façon simple.
Obtenir les JAR de POI
- Aller sur le site de POI Apache et télécharger le zip poi-bin‑x.x‑AAAAMMJJ.zip,
- Extraire les fichiers JAR sur l’IFS,
- Ajouter le chemin des JAR files à la variables d’environnement CLASSPATH
ADDENVVAR ENVVAR(CLASSPATH)
VALUE('...chemin IFS vers les JAR...')
Pré-requis
- au moins être en version V5R3,
- avoir la licence du compilateur ILE RPG IV licence 57xxWDS ,
- IBM Developer Kit for Java, licence 57xxJV1, *base,
- System Openness Includes (library QSYSINC) licence 57xx-SS1,
- télécharger sur le site de Scott Klement les fichier XLPARSER4,
Installation
- Extraire le zip XlParse36_1,
- on execute en dos le .bat : ftpsrc.bat SERVEUR BIBLIO PROFIL MOT_DE_PASSE,
- les objets se trouveront à ces emplacements
Outils | Fichier JAR | Chemin IFS | HSSF | XSSF | Description |
XlParse 3.6 | xlparse.jar | /java/xlparse3.6 | X | X | Partie JAVA développer par Scott Klement |
4. créer le programme d’installation BUILDXLP
5. exécution du programme d’installation CALL BUILDXLP.
CHGLIBL LIBL(QGPL QTEMP) CURLIB(<<BUILD où se trouve BUILDXLP>>)
CRTCLPGM BUILDXLP SRCFILE(QCLSRC)
6. Emplacements des JAR en rapport avec le CLASSPATH (voir plus bas)
Outils | Fichier JAR | Chemin IFS | HSSF | XSSF | Description |
poi‑4.1.0.jar | /java/xlparse3.6/POI‑4.1.0 | X | X | Apache POI – Java API To Access Microsoft Format Files | |
poi-ooxml‑4.1.0.jar | /java/xlparse3.6/POI‑4.1.0 | X | Additional POI code for XSSF | ||
poi-ooxml-schemas‑4.1.0.jar | /java/xlparse3.6/POI‑4.1.0 | X | Schemas for XSSF code | ||
activation‑1.1.1.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
commons-codec‑1.12.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
commons-collections4‑4.3.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
commons-compress‑1.18.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
commons-logging‑1.2.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
commons-math‑3.6.1.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
jaxb-api‑2.3.0.jar | /java/xlparse3.6/POI‑4.1.0/lib | X | JAXB API | ||
jaxb-core‑2.3.0.1.jar | /java/xlparse3.6/POI‑4.1.0/lib | X | |||
jaxb-impl‑2.3.0.1.jar | /java/xlparse3.6/POI‑4.1.0/lib | X | |||
junit‑4.12.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
log4j‑1.2.17.jar | /java/xlparse3.6/POI‑4.1.0/lib | ||||
curvesapi‑1.06.jar | /java/xlparse3.6/poi‑4.1.0/ooxml-lib | Implementation of various mathematical curves that define themselves over a set of control points. The API is written in Java. The curves supported are : Bezier, B‑Spline, Cardinal Spline, Catmull-Rom Spline, Lagrange, Natural Cubic Spline, and NURBS. | |||
xmlbeans‑3.1.0.jar | /java/xlparse3.6/poi‑4.1.0/ooxml-lib | X | XmlBeans main jar | ||
poi-examples‑4.1.0.jar | /java/xlparse3.6/poi‑4.1.0 | ||||
poi-excelant‑4.1.0.jar | /java/xlparse3.6/poi‑4.1.0 | ||||
poi-scratchpad‑4.1.0.jar | /java/xlparse3.6/poi‑4.1.0 |
Pour ajouter les JAR au CLASSPATH, vous pouvez faire comme dans les préconisations de Scott Klement, utiliser un CLLE qui changement le CLASSPATH comme ci-dessous :
[pastacode lang=«rpgle » user=«ibmiiste » repos=«XLPARSE4 » path_id=»/XLPARSE4/PRPENVJAVA.CLLE » revision=«master » highlight=»» lines=»» provider=«github»/]
Maintenant, il faut tester
Pour tester, lancer la commade CALL PGM(XLPDEMO) PARM(‘1’).
XLPDEMO est une édition du fichier Excel. Ce programme utilise la sous-procédure xlparse_workbook.
Celle-ci va lire chaque cellule du fichier Excel dont le chemin est transmis et appliquer la sous-procédure charcell sur la valeur si celle-ci est alphanumérique et numbercell si elle est numérique.