Anmelden

View Full Version : Excel ausgeben mit SQL / RPG



Seiten : [1] 2

wti
08-07-22, 08:23
Moin @ll,

ich stehe gerade auf dem Schlauch und hoffe dass ihr mir auf die Sprünge helfen könnt ;)

Aktuell habe ich eine Excel-Tabelle (s. ScreenShot) mit Text, Grafik etc. die über eine Daten-Quelle mit SQL von dem System i mit Daten versorgt wird. Hierfür ist allerdings die manuelle Eingabe einer Nummer erforderlich.
Diese Excel-Tabelle soll nun maschinell erzeugt, als .xls gespeichert und per eMail versandt werden.
Bisher habe ich nur die Ausgabe einer .csv-Datei gefunden, was mir bei dieser Anforderung nicht weiterhilft, da die .xls Datei als Template verwendet und die Daten an der vorgegebenen Stelle eingefügt werden sollen.

Ich freue mich über eure Vorschläge uns wünsche schon mal ein schönes Wochenende :)
Wolfgang


638

Andreas_Prouza
08-07-22, 09:08
Dafür benötigst du ein Framework (am besten in Java, PHP oder Python) welches das Excel Format unterstützt und öffnen und darin die Datensätze hinzufügen kann.
Für den Versand von Mail gibt es auch viele Möglichkeiten.
lg Andreas

B.Hauser
08-07-22, 09:54
Schau dir mal den folgenden Link von Scott Forstie an:
https://gist.github.com/forstie/cec5b0bf5c0e6983125ae078b0d04b48

Fuerchau
08-07-22, 10:07
ACS kann auch keine Excel updaten sondern nur Excel erstellen.
Die eleganteste Möglichkeit bietet Excel da bereits selber.
Man kann in Excel der OBDC-Abfrage auch einen Parameter "?" mitgeben und diesem Parameter eine Zelle zuweisen.
Immer wenn die Zelle geändert wird und man "Daten->Aktualisere" wählt, werden die Daten an die selbe Stelle in der Exceldatei abgelegt.
Da der Abfragebereich einen Namen hat, kann mann gezielt mit einem Verweis oder sonstigem darauf zugreifen.

https://support.microsoft.com/de-de/office/erstellen-einer-parameterabfrage-in-microsoft-query-c67d9af7-c8a0-4bf7-937c-087cb25f7ad3

itec01
17-06-24, 09:23
Moin, ich hänge mich hier mal mir rein.
Wir haben ein Excel Template und sollen ab Zeile 19 die Excel Datei mit Daten aus der AS/400 vervollständigen.
Wie würdet Ihr hier vorgehen? Geht das mit AS/400 eigenen Bordmitteln überhaupt?
Danke.
Klaus

Fuerchau
17-06-24, 12:13
Nein und Ja, da Java auch ein Bordmittel ist.
https://poi.apache.org/

Andere Sachen liegen dann eher auf Clientseite wie z.B. C# und sog. Thirdparty-Libs.
Excel selber als App ist nur schwer automatisierbar, da Office zwar "Interop" unterstützt, allerdings offiziell nicht im Batchmodus, z.B. userless in der Aufgabenplanung.
Ich setze z.B. gerne C# mit Office-Libs ein. Da gibts eine Reihe von Lieferanten, teils kostenlos mit wenig Funktionsumfang bis kostenpflichtig.

itec01
17-06-24, 12:30
Danke, aber dann liegt auf dem Client wieder einiges. Das soll automatisiert laufen.
Ich habe mir ein python script erzeugt und dieses über QSH mit Parametern aufgerufen.

import openpyxl
import sys

xlsxrow=int(sys.argv[1])
xlsxcol=int(sys.argv[2])
xlsxcont=sys.argv[3]

fileXLSX = openpyxl.load_workbook('/temp/python/excelwrite.xlsx')

sheet = fileXLSX["test"]

sheet.cell(row=xlsxrow, column=xlsxcol).value = xlsxcont
fileXLSX.save('/temp/python/excelwrite.xlsx')
Aufruf wäre dann: python3 /temp/python/excelwrite.py 10 2 1.5

Fuerchau
17-06-24, 15:01
Ist ja indirekt auch eine IBM i Lösung, da ja Python auf IBM i läuft.

ILEMax
17-06-24, 15:56
Mi DB Export von der tool-company
Das kann das problemlos
Der ILEMax

itec01
17-06-24, 16:58
Mi DB Export von der tool-company
Das kann das problemlos
Der ILEMax

danke, welche Firma ist das und ist vermutlich kostenpflichtig, richtig?