Accueil du site > Les articles > Créer un fichier Excel à partir d’une requête SQL
Version à imprimer Enregistrer au format PDF

Créer un fichier Excel à partir d’une requête SQL

Un moyen très simple pour créer un fichier XLS dans l’IFS à partir d’une requête SQL !

vendredi 28 janvier 2005, par Serge Gomes Visites  50771

En 3 étapes, comment créer un fichier XLS dans l’IFS à partir d’une requête SQL !


Les étapes.

- ETAPE 1 : Création d’un fichier temporaire contenant la sélection (avec SQL).

CREATE TABLE QTEMP/TMPXLS AS (SELECT * FROM FICHIER)
WITH DATA

- ETAPE 2 : Copy du fichier vers l’IFS (Ligne de commande).

CPYTOIMPF FROMFILE(QTEMP/TMPXLS)                      
         TOSTMF('/HOME/XLS/fichier.xls')    
         MBROPT(*REPLACE)                            
         STMFCODPAG(*PCASCII)                        
         RCDDLM(*CRLF)                              
         DTAFMT(*DLM)                                
         STRDLM(*NONE)                              
         FLDDLM(X'05')                              
         DECPNT(*COMMA)      

- ETAPE 3 : Suppression du fichier temporaire (avec SQL).


DROP TABLE QTEMP/TMPXLS

Un exemple.

- Exécuter la requête suivante, crée dans le fichier TMPXLS de QTEMP, les infos sur la structure des tables TABLE1 et TABLE2 :

CREATE TABLE QTEMP/TMPXLS AS (
SELECT
   DBIFIL AS TABLE
 , DBIFLD AS CHAMP
 , DBIPOS AS POSITION
 , DBITXT AS TEXTE
 , DBITYP AS TYPE
 , COALESCE(CAST(DBICLN AS CHAR(4)), CAST(DBINLN AS CHAR(4))) AS LNG1
 , COALESCE(CAST(DBINSC AS CHAR(1)), ' ') AS LNG2
 FROM QADBIFLD
WHERE                                        
      DBIFIL IN ( 'TABLE1' , 'TABLE2' )                      
  AND DBILIB = 'REFDTA'
ORDER
   BY DBIFIL, DBIPOS                                  
) WITH DATA

- Exécuter la commande suivante pour créer le fichier Excel correspondant :

CPYTOIMPF FROMFILE(QTEMP/TMPXLS)                      
         TOSTMF('HOME/XLS/fichier.xls')    
         MBROPT(*REPLACE)                            
         STMFCODPAG(*PCASCII)                        
         RCDDLM(*CRLF)                              
         DTAFMT(*DLM)                                
         STRDLM(*NONE)                              
         FLDDLM(X'05')                              
         DECPNT(*COMMA)      

- Supprimer le fichier TMPXLS de QTEMP :


DROP TABLE QTEMP/TMPXLS

P.-S.

Le séparateur utilisé dans cet exemple (X’05’) est la tabulation. La tabulation est interprété par excel comme un saut de colonne.