odt in Datenbank

Das Textverarbeitungsprogramm

Moderator: Moderatoren

dragonfight86
Beiträge: 3
Registriert: Mi, 03.05.2017 08:31

odt in Datenbank

Beitrag von dragonfight86 » Mi, 03.05.2017 08:47

Hallo zusammen,

ich schreibe gerade ein Programm zur Rechnungsverwaltung, hier stehe ich vor einem Problem.

Es gibt bereits erstellte Rechnungen, diese wurden zum Großteil in .odt gespeichert, die Rechnungsdaten sollen in eine Datenbank und hier komme ich nicht weiter.

Ich schreibe in Java und habe bereits das odfToolkit eingebunden und um ehrlich zu sein habe ich keine Idee wie es nun weiter gehen soll :(
Das Programm muss irgenwie die Datei öffnen und die Daten

Ich bin über jeden Gedankenanstoß Dankbar
Chris

Toxitom
********
Beiträge: 3406
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: odt in Datenbank

Beitrag von Toxitom » Mi, 03.05.2017 09:13

Hei Chris,

willst Du das komplette *.odt in die Datenbank integrieren? Also als File? Das können die meisten Datenbanken doch auch so.. da brauchste dann kein Toolkit;)

Willst Du hingegen Inhalte extrahieren und diese in bestimmte Felder der Datenbank eintragen ... tia, dann wird es komplizierter.

Ist aber machbar, falls die bestehenden Rechnungen sich alle in bestimmte Schemas packen lassen - also z.B. ein eigenen Anschriftenfeld besitzen, aus dem Du die Daten extrahieren kannst, eine Tabelle, aus der die Rechnungsdaten extrahierbar sind etc.
Das alles wäre aber problemlos mit den OO/LO API Methoden machbar - dazu brauchste das Toolkit an sich nicht.

Ich würde in deinem Fall ein eigenes Makro schreiben, das lediglich die Dateien öffnet (in AOO/OO - aber hidden), die Daten extrahiert und dann als SQL in die Datenbank schreibt. Rekursiv. Ist ja ein einmaliger Vorgang.

Mit dem Toolkit kannste direkt auf die XML-Struktur der OpenDocument Dateien zugreifen - ohne OO/AO. Jetzt musst Du halt die Daten aus der xml Struktur extrahieren. Ob das dann tatsächlich einfacher ist?? Kommt meiner Ansicht auf die Menge der einzulesenden Rechnungen an. Der Direktzugriff sollte performer sein - der Schreibaufwand jedoch erheblich größer.

Im ERgebnis ist es eine Abwägungssache:)

Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 5- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic

dragonfight86
Beiträge: 3
Registriert: Mi, 03.05.2017 08:31

Re: odt in Datenbank

Beitrag von dragonfight86 » Mi, 03.05.2017 09:44

Hallo Tom,

anbei eine Beispieldatei.

Ich möchte nur Bestimmte Daten aus der Rechnung ziehen
Anrede,Name,Firma,Rechnungsnummer,Preise etc. die Datenbank dazu steht schon.

Das Schema der Rechnungen ist stets das selbe und wie ich gerade bemerkt habe ist das eine .odt Datei mit integrierter Tabelle wobei die Relevanten Daten sich in der Tabelle befinden....
Dateianhänge
Beispiel.odt
(33.36 KiB) 67-mal heruntergeladen

Toxitom
********
Beiträge: 3406
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: odt in Datenbank

Beitrag von Toxitom » Mi, 03.05.2017 19:57

Hei Dragonfight,

nix Tabelle.... das ist eine eingebettet Calc-Tabelle, alos ein OLE Objekt.

Wenn aber alle Informationen da drin stehen, kommst Du auch einfach ran:
Mit Basic sehe das so aus (Prinzip):

Code: Alles auswählen

oDoc = thisComponent 'Zugriff auf das WriterDokument
oSheet = oDoc.embeddedObjects.getByIndex(0).model.getsheets.getByIndex(0)  'Zugriff auf die Tabelle
nun kannst Du ganz normal die Zelle ansprechen und den Inhalt auslesen.

Vielleicht hilft es Dir.

Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 5- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic

dragonfight86
Beiträge: 3
Registriert: Mi, 03.05.2017 08:31

Re: odt in Datenbank

Beitrag von dragonfight86 » Do, 04.05.2017 08:24

Danke Tom,

ich muss das Projekt in Java umsetzen daher bringt mich Basic nicht weiter. Dennoch vielen Dank für den Hinweis jetzt weiß ich wonach ich suchen muss.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste