-
Excel mit ACS in Batch erstellen
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
kf
-
Was mir am Excel-Output des ACS nur aufgefallen ist, dass Zahlen als String in Excel abgelegt werden.
Im Excel muss man dann immer noch die Zellen als Zahl umrechnen lassen.
Dies geht dann per Klick auf das rote Dreieck einer Zelle bzw. eines markierten Bereichs.
Wobei Excel bei NULL-Werten, also leeren Zellen, dann wieder streikt.
Dies ist unabhängig von der Dezimaleinstellung (Punkt, Komma) der Java-Connection.
Hast du da auch eine Lösung für?
-
Hallo Baldur,
Ist mir nicht aufgefallen. Die Zahlen in Excel werden korrekt dargestellt.
Abgesehen davon, kannst Du ja im CL auch einen SQL-String zusammenbasteln, bis du lustig bist.
kf
Similar Threads
-
By Chris.jan in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 26-06-19, 11:26
-
By gerhardsw in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 03-07-18, 12:55
-
By Klaus in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 20-04-02, 18:37
-
By Stefan_R in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 19-10-01, 14:06
-
By smallutz in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 09-03-01, 08:50
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks