Nachdem ich hier im Forum manchmal durch Motz oder Unwissenheit aufgefallen bin, möchte ich auch etwas zurückgeben. Öfters wird nach dem Transfer in Excel gefragt und meistens als Antwort auf das schnöde CSV verwiesen. Dabei lassen sich via ACS auch in Batch Excel Dateien erstellen, nicht schnell aber immerhin und für lau.

Hier der Code als CLLE:

Code:
              /* Batch Excel Transfer mit ACS                        */
              /* ---------------------------------------- mylogic.io */
             PGM        PARM(&LIB &FILE &XLSFILE)


             DCL        VAR(&LIB) TYPE(*CHAR) LEN(10)
             DCL        VAR(&FILE) TYPE(*CHAR) LEN(10)
             DCL        VAR(&XLSFILE) TYPE(*CHAR) LEN(30)
             DCL        VAR(&SYSNAME) TYPE(*CHAR) LEN(8)
             DCL        VAR(&JAVA) TYPE(*CHAR) LEN(1500)


             DCL        VAR(&HOME) TYPE(*CHAR) LEN(50) +
                          VALUE('/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit')
             DCL        VAR(&JARNAME) TYPE(*CHAR) LEN(50) +
                          VALUE('/QIBM/ProdData/Access/ACS/Base/acsbundle.jar')


              /* Check Parameters                                    */
             IF         COND((&LIB *EQ ' ') *OR (&FILE *EQ ' ') *OR +
                          (&XLSFILE *EQ ' ')) THEN(RETURN)


              /* Get System Name                                     */
             RTVNETA    SYSNAME(&SYSNAME)


              /* Set Environment                                     */
             ADDENVVAR  ENVVAR(JAVA_HOME) VALUE(&HOME) LEVEL(*SYS) +
                          REPLACE(*YES)
             MONMSG     MSGID(CPF0000)
              /* Set no Messages                                     */
             ADDENVVAR  ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE(NONE) +
                          LEVEL(*JOB) REPLACE(*YES)
             MONMSG     MSGID(CPF0000)


              /* Create Java String                                  */
             CHGVAR     VAR(&JAVA) VALUE('java +
                          -Dcom.ibm.iaccess.ActLikeExternal=true -jar')
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *bcat &JARNAME)
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *bcat +
                          '/plugin=cldownload /system=')
              /* add Systemname                                      */
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *tcat &SYSNAME)
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *bcat '/clientfile=')
              /* add XLS Filename (/Pfad/File.xlsx)                  */
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *tcat &XLSFILE)
              /* SQL String                                          */
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *bcat '/sql="select * +
                          from')
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *BCAT &LIB *TCAT '/' +
                          *CAT &FILE)
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *tcat '"')
              /* Header Columns 0=keine, 1=Feldnamen                */
              /* CHGVAR     VAR(&JAVA) VALUE(&JAVA *bcat '/colheadings=0')  */
              /* Header Columns Bezeichnung                         */
             CHGVAR     VAR(&JAVA) VALUE(&JAVA *bcat '/usecollabels')


              /* Java Call                                           */
             QSH        CMD(&JAVA)
             RMVENVVAR  ENVVAR(JAVA_HOME)
             MONMSG     MSGID(CPF0000)


             ENDPGM