Java: Felder (Bookmarks?) korrekt auslesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

julien
Beiträge: 1
Registriert: Mo, 14.01.2008 03:24

Java: Felder (Bookmarks?) korrekt auslesen

Beitrag von julien »

Hallo zusammen!

Vorsicht, ich bin neu :-) Aber vielleicht kann mir hier jemand helfen.
Ich habe eine große Anzahl an Rechnungen, die ursprünglich in Word (DOC, 97-2002) vorlagen. Diese habe ich in das ODT-Format konvertiert und versuche nun, auf die enthaltenen Felder
zuzugreifen, um sie auslesen zu können. Insgesamt ist jedes Dokument einseitig und besteht aus einer Tabelle. Alle Felder liegen also in den Zellen, aber manchmal steht in der jeweiligen Zelle auch noch Information, die ich nicht gebrauchen kann.

Bisher habe ich folgende Erfahrung gemacht:
1. Wenn ich den XBookmarksSupplier verwende und eine Instanz von XBookmarksNameAccess bilde, kann ich über die Methode getByName(String s) ein Any-Objekt bekommen.

Code: Alles auswählen

XTextContent xTextContent = (XTextContent) ((Any)xBookmarksNameAccess.getByName(key)).getObject(); 
gibt mir dann leider auch die Informationen aus den Zellen aus, die ich überhaupt nicht benötige.
2. Wenn ich über den XTextFieldsSupplier gehe, dann bekomme ich die richtigen Werte, allerdings nur als Enumeration, so dass ich nicht weiß, welcher Wert zu welchem Feld gehört. Es kommt nämlich auch vor, dass in manchen Rechnungen ein Feld mehr oder weniger enthalten ist.

Die 2. Methode funktioniert wunderprächtig, aber leider ohne Identifizierungsmöglichkeit.
Was kann ich tun, um eine Verknüpfung zwischen Feldinhalt und Feldnamen zu erhalten?

Hoffentlich habe ich mich verständlich ausgedrückt (schon spät :-).
Jedenfalls schon einmal vielen Dank im Voraus!


Grüße
Julien
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Java: Felder (Bookmarks?) korrekt auslesen

Beitrag von komma4 »

Ich kann Dir keine Lösung anbieten. Einmal, weil ich kein Java spreche, zum Anderen, weil ich keine Frage erkennen kann.

Du kannst auf die Position zugreifen und auf die Inhalte.
Wo liegt das Problem?

in Basic:

Code: Alles auswählen

' Textmarke holen
oBM = oWriterDok.getBookmarks().getByName( sBMName ) 
' Verankerung der Textmarke
oBMAnker = oBM.getAnchor()

oCur = oBMAnker.getText().createTextCursorByRange( oBMAnker ) 

oTextCur = oWriterDok.getText().createTextCursorByRange( oCur )
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Java: Felder (Bookmarks?) korrekt auslesen

Beitrag von hol.sten »

julien hat geschrieben:Was kann ich tun, um eine Verknüpfung zwischen Feldinhalt und Feldnamen zu erhalten?
Mit dem XBookmarksSupplier kannst du dir alle Bookmarks holen.

Mit dem Befehl "XNameAccess xNamedBookmarks = xBookmarksSupplier.getBookmarks();" kannst du dir alle Bookmarks inklusive deren Namen holen.

Anschließend kannst du mit dem Befehl "String[] bookmarkNames = xNamedBookmarks.getElementNames();" ein String-Array aller Bookmark-Namen bekommen.

Wenn du nun weißt, wie das gesuchte Bookmark heißt, durchsuchst du einfach das String-Array "bookmarkNames" nach den gewünschten Namen, erhälst damit deren Index und greifst dann über "Object bookmark = xNamedBookmarks.getByName(bookmarkNames);" auf das gesuchte Bookmark zu.
Antworten