-
Ich habe es unter 7.2 hinbekommen und musste dazu die makefile.ibm etwas modifizieren
Anbei ein Programm, dass folgende Excel-Tabelle erstellt
Code:
ctl-opt main(main) dftactgrp(*no) alloc(*teraspace)
actgrp('CRTEXCEL') bnddir('LIBXLSX');
//------------------------------------------------------------------//
// //
// Create Excel-Sheet //
// //
//----------------- //
// R.Ross 03.2018 * //
//------------------------------------------------------------------//
// Prototypes //
//------------------------------------------------------------------//
/include libxlsx/qcpysrc,xlsxwriter
//------------------------------------------------------------------//
// Main //
//------------------------------------------------------------------//
dcl-proc main;
dcl-s workbook pointer;
dcl-s worksheet pointer;
dcl-s format01 pointer;
dcl-s format02 pointer;
dcl-s bold pointer;
workbook = workbook_new('/tmp/xlsx/formula.xlsx');
worksheet = workbook_add_worksheet(workbook:'Testsheet 1');
format01 = workbook_add_format(workbook);
format_set_num_format(format01:'#,##0.00');
format02 = workbook_add_format(workbook);
format_set_num_format(format02:'#,##0.00');
format_set_bold(format02);
bold = workbook_add_format(workbook);
format_set_bold(bold);
worksheet_write_string(worksheet:0:0:'Monat':*null);
worksheet_write_string(worksheet:0:1:'Umsatz':*null);
worksheet_write_string(worksheet:1:0:'Januar':*null);
worksheet_write_string(worksheet:2:0:'Februar':*null);
worksheet_write_string(worksheet:3:0:'März':*null);
worksheet_write_string(worksheet:4:0:'April':*null);
worksheet_write_string(worksheet:5:0:'Mai':*null);
worksheet_write_number(worksheet:1:1:6250:format01);
worksheet_write_number(worksheet:2:1:3580:format01);
worksheet_write_number(worksheet:3:1:780:format01);
worksheet_write_number(worksheet:4:1:43580:format01);
worksheet_write_number(worksheet:5:1:22890:format01);
worksheet_write_string(worksheet:6:0:'Summe':bold);
worksheet_write_formula(worksheet:6:1:'=SUM(B2:B6)':format02);
workbook_close(workbook);
end-proc;
//------------------------------------------------------------------//
-
Zitat von Rainer Ross
Ich habe es unter 7.2 hinbekommen und musste dazu die makefile.ibm etwas modifizieren
Hallo. Rein interessenshalber wäre es spannend zu wissen was geändert werden musste?
Danke und Greets
-
Hallo. Rein interessenshalber wäre es spannend zu wissen was geändert werden musste?
- In die makefile.ibm die ccsid eingefügt
CCFLAGS=OUTPUT(*PRINT) OPTIMIZE(10) DBGVIEW(*SOURCE) TGTCCSID(1141) ENUM(*INT) TERASPACE(*YES) STGMDL(*INHERIT) DEFINE(USE_STANDARD_TMPFILE USE_BIG_ENDIAN LXW_HAS_SNPRINTF) SYSIFCOPT(*IFS64IO) INCDIR('../include' '$(ZLIB_INC)' '../third_party/minizip')
- Die Exports aus der exports.bnd in die LIBXLSX/QSRVSRC(EXPORTS BND) eingefügt
- Das CRTSRVPGM mit der neuen EXPORTS geändert
CRTSRVPGM SRVPGM(LIBXLSX/LIBXLSX) MODULE(LIBXLSX/*ALL) STGMDL(*INHERIT) EXPORT(*SRCFILE) SRCFILE($(BIN_LIB)/QSRVSRC) SRCMBR(EXPORTS) TEXT('libxlsxwriter : creating Excel files natively') BNDSRVPGM(ZLIB/ZLIB)
Hier die neue makefile.ibm
Code:
#
# Build script for libxlsxwriter
#
#The library can be installed by entering QShell (qsh) and using the Makefile.ibm script like this
#cd /home/projects/libxlsxwriter/src
#make -f Makefile.ibm
#-----------------------------------------------------------
# User-defined part start
#
# BIN_LIB is the destination library for the service program.
# the rpg modules and the binder source file are also created in BIN_LIB.
# binder source file and rpg module can be remove with the clean step (make clean)
BIN_LIB=LIBXLSX
# to this folder the header files (prototypes) are copied in the install step
INCLUDE=/home/projects/libxlsxwriter/include
# this folder should include the C header files from the zlib project
ZLIB_INC=/zlib/include
# CCFLAGS = C compiler parameter
CCFLAGS=OUTPUT(*PRINT) OPTIMIZE(10) DBGVIEW(*SOURCE) TGTCCSID(1141) ENUM(*INT) TERASPACE(*YES) STGMDL(*INHERIT) DEFINE(USE_STANDARD_TMPFILE USE_BIG_ENDIAN LXW_HAS_SNPRINTF) SYSIFCOPT(*IFS64IO) INCDIR('../include' '$(ZLIB_INC)' '../third_party/minizip')
#
# User-defined part end
#-----------------------------------------------------------
.SUFFIXES: .rpgle .c .cpp
# suffix rules
.rpgle:
system "CRTRPGMOD $(BIN_LIB)/$@ SRCSTMF('$<') $(RCFLAGS)"
.c:
system "CRTCMOD MODULE($(BIN_LIB)/$@ SRCSTMF('$<' $(CCFLAGS)
all: clean compile bind install
compile: thirdparty
system "CRTCMOD MODULE($(BIN_LIB)/XLSXAPP) SRCSTMF('app.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXCHART) SRCSTMF('chart.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXCONTNT) SRCSTMF('content_types.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXCORE) SRCSTMF('core.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXCUSTOM) SRCSTMF('custom.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXDRAW) SRCSTMF('drawing.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXFORMAT) SRCSTMF('format.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXHASH) SRCSTMF('hash_table.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXPACKAG) SRCSTMF('packager.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXRELATI) SRCSTMF('relationships.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXSTRING) SRCSTMF('shared_strings.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXSTYLES) SRCSTMF('styles.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXTHEME) SRCSTMF('theme.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXUTIL) SRCSTMF('utility.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXWBOOK) SRCSTMF('workbook.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXWSHEET) SRCSTMF('worksheet.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/XLSXWRITER) SRCSTMF('xmlwriter.c') $(CCFLAGS)"
thirdparty:
system "CRTCMOD MODULE($(BIN_LIB)/IOAPI) SRCSTMF('../third_party/minizip/ioapi.c') $(CCFLAGS)"
system "CRTCMOD MODULE($(BIN_LIB)/ZIP) SRCSTMF('../third_party/minizip/zip.c') $(CCFLAGS)"
bind:
system -kpieb "CRTSRVPGM SRVPGM(LIBXLSX/LIBXLSX) MODULE(LIBXLSX/*ALL) STGMDL(*INHERIT) SRCFILE($(BIN_LIB)/QSRVSRC) SRCMBR(EXPORTS) BNDSRVPGM(ZLIB/ZLIB) TEXT('libxlsxwriter : creating Excel files natively')"
util:
system -kpieb "CRTCMOD MODULE($(BIN_LIB)/XLSXUTIL) SRCSTMF('utility.c') $(CCFLAGS)"
packager:
system "CRTCMOD MODULE($(BIN_LIB)/XLSXPACKAG) SRCSTMF('packager.c') $(CCFLAGS)"
install:
clean:
-system "DLTMOD $(BIN_LIB)/XLSXAPP"
-system "DLTMOD $(BIN_LIB)/XLSXCHART"
-system "DLTMOD $(BIN_LIB)/XLSXCONTNT"
-system "DLTMOD $(BIN_LIB)/XLSXCORE"
-system "DLTMOD $(BIN_LIB)/XLSXCUSTOM"
-system "DLTMOD $(BIN_LIB)/XLSXDRAW"
-system "DLTMOD $(BIN_LIB)/XLSXFORMAT"
-system "DLTMOD $(BIN_LIB)/XLSXHASH"
-system "DLTMOD $(BIN_LIB)/XLSXPACKAG"
-system "DLTMOD $(BIN_LIB)/XLSXRELATI"
-system "DLTMOD $(BIN_LIB)/XLSXSTRING"
-system "DLTMOD $(BIN_LIB)/XLSXSTYLES"
-system "DLTMOD $(BIN_LIB)/XLSXTHEME"
-system "DLTMOD $(BIN_LIB)/XLSXUTIL"
-system "DLTMOD $(BIN_LIB)/XLSXWBOOK"
-system "DLTMOD $(BIN_LIB)/XLSXWSHEET"
-system "DLTMOD $(BIN_LIB)/XLSXWRITER"
-system "DLTMOD $(BIN_LIB)/IOAPI"
-system "DLTMOD $(BIN_LIB)/ZIP"
dist-clean: clean
-system "DLTSRVPGM $(BIN_LIB)/LIBXLSX"
.PHONY:
-
Vielen Dank.
Da kommt man vom 100sten ins 1000ste ...
Mir fehlt auch noch das ZLIB. Jetzt gehts los :-D
-
Hallo,
ich habe zwei Savefiles für die LIBXLSX und ZLIB für 7.2 zum Download erstellt
https://bitbucket.org/Rainer_Ross/li...ter/downloads/
Viele Grüße
Rainer
-
OffTopic ..
ganz ehrlich ... Toll was so alles geht!
Aber wenn ich bedenke welcher optische Aufwand in den Excel Ausgaben für unsere 'Chefs' betrieben wird, währe es für mich der Horror das mit diesem, sicherlich tollen, Tool zu machen.
bei uns macht 'Irgendwer' das Excel so fertig, wie es werden soll und wir laden die Daten wie von Fuerchau beschrieben oder verwenden ein Tool (haben wir von Meinikat gekauft)
und exportieren unsere Daten programmiert mit select * from ...where ...
Egal ob einzelnde Felder oder riesige Tabellen.
Ich kann gezielt in ner Spalte auf setzen oder nach einem Inhalt suchen und ab dem die Daten schreiben.
mit einem Pgm ein Excel zu designen ...
Nein, bestimmt nicht!
Der ILEMax
-
Nun ja, der obige Ansatz ist halt etwas komplizierter als ein CPYFRMIMPF.
Diese Ausgabe kann von Excel auch ganz einfach geöffnet werden.
Aber die Datenimporte von Excel sind da viel einfacher, keine Programmierung, besseres Arbeiten mit den Ergebnissen.
Aktualisieren ist mit obiger Methode eher nicht möglich.
Ich kann Datenimporte auch direkt in eine Pivot/PowerPivot-Tabelle machen.
Mach dies mal mit obigem Tool.
Der Aufwand ist geradezu unverhältnismäßig.
Und wo ist da das berühmte WYSIWYG?
-
Also wir stellen unseren Benutzern da auch eher diverse Excel-Templates zur Verfügung, die ein wenig VBA-Code enthalten. Damit kann jeder Benutzer bei Bedarf die Daten aktualisieren und die Datenaufbereitung bzw. das Layout wird auch per VBA gesteuert.
GRuß,
KM
-
Natürlich sind die Methoden über den Import (CA oder ODBC etc) um einiges einfacher und konfortabler. Wird bei uns hier in der Bude auch so gelebt.
Ich war nur positiv überrascht was es nicht schon so alles gibt auf der IBMi
-
Eine weitere Möglichkeit AS/400-Daten in XLSX zu bringen wäre noch Node.js. Hier gibt es ein Tutorial von Scott Klement.
https://www.scottklement.com/present...%20IBM%20i.pdf
Ich denke gerade mit Node.js wird man in Zukunft noch viel mehr auf der AS/400 machen.
Gruß,
KM
-
"...in Zukunft noch viel mehr auf der AS/400 machen"
Nun ja, da der Nachwuchs fehlt, wird daraus eher "...in Zukunft fast nichts mehr auf der AS/400 machen".
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