HTML-Tabelle in ODS konvertieren per JAVA

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

Moderator: Moderatoren

Biks
*
Beiträge: 17
Registriert: Di, 20.02.2007 19:28
Wohnort: Beachtown

HTML-Tabelle in ODS konvertieren per JAVA

Beitrag von Biks »

Hallo zusammen,

ich habe eine HTML-Tabelle, der ich mittels JAVA ein paar Spalten hinzufüge, deren Inhalt ich wiederum aus dem Internet beziehe. Die neue Tabelle möchte ich in OOBase als Quelle verwenden. Während ich in OOCalc eine HTML-Tabelle ohne Probleme öffnen kann, funktioniert dies mit OOBase nicht. Daher muss ich die HTML-Tabelle in ein gängigeres Format konvertieren. Ich könnte meine JAVA-Anwendung so erweitern, dass ich eine normale Spreadsheet daraus mache, indem ich die <>-Tags entferne bzw. teilweise durch TABS ersetze.

Allerdings hoffe ich auf eine schönere Lösung, in dem ich die Tabelle als ODS speichere.
  1. Kann ich auf entsprechende Open-Office-Klassen einfach so zugreifen? Oder benötige ich dafür das SDK?
  2. Muss ich, um die Tabelle als ODS zu speichern, die Datei vorher auch mittels einer OO-Funktion öffnen oder erfolgt beim Speichern als ODS automatisch eine Auswertung der HTML-Tags?
  3. Würde eine Öffnen-OO-Klasse eine HTML-Tabelle (Dateiendung xls) öffnen können?
  4. Gibt es eine Übersicht, die einem die OO-Klassen und deren Funktionen kurz vorstellt?
Viele Grüße!
Biks
_________________________
OpenOffice 2.4.1, WinXP SP3
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: HTML-Tabelle in ODS konvertieren per JAVA

Beitrag von Toxitom »

Hey Biks,

du müsstest die Tabelle via einer UNO-Funktion in OOo öffnen - mit entsprechenden Filterangaben - sonst weird daraus keine Calc-Tabelle und später kein *.ods.
Der Weg wäre wie folgt:
Öffnen der Datei mit der Methode LoadComponentfromURL(), übergabe ders HTML-Filters, abspeichern der Datei als *.ods.
Kannst du alles im "hidden" mode durchführen.
Da die API offen liegt und die UNO Komponenten durchaus auch von außen angesteuert werden können, kannst du das natürlich alles von Java aus machen.
Das SDK benötigst du m.W. nicht zwingend, da aber dort auch die komplette Dokumentation drin steckt und viele Beispiele (in Java), wäre es für dich schon zu empfehlen.
Ansosnten, die verfügbaren Services, interfaces etc findest du -> hier, meist sind auch Beispiele verlinkt (im Developers Guide).

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Biks
*
Beiträge: 17
Registriert: Di, 20.02.2007 19:28
Wohnort: Beachtown

Re: HTML-Tabelle in ODS konvertieren per JAVA

Beitrag von Biks »

Danke für die Infos!
_________________________
OpenOffice 2.4.1, WinXP SP3
Biks
*
Beiträge: 17
Registriert: Di, 20.02.2007 19:28
Wohnort: Beachtown

JAVA-Pfade einrichten...

Beitrag von Biks »

So, ich habe mir nun das SDK installiert und eingerichtet. Soweit so gut. Aber viel weiter komme ich nicht. Der Developers Guide hilft mir da auch nicht wirklich weiter, weil man dort davon ausgeht, dass man mit einem JAVA-Projekt-Editor (oder wie auch immer) arbeitet, insofern ich das richtig verstanden habe (Kapitel 2.3.3). Ich hoffe ihr könnt mir noch ein paar Hinweise geben.

Wie kann ich die com.sun.XXX-Importe der Java-Umgebung zugänglich machen, so dass sie beim kompilieren gefunden werden? Geht das mit CLASSPATH? Der Begriff ist mir begegnet, aber ich weiß nicht, wo ich die Einstellungen dazu machen kann. Ich arbeite mit "JDK 1.6.0".

Schönes Wochenende!
Biks

PS: Konkret gesagt will ich zum Beispiel folgenden Import durchführen:
import com.sun.star.lang.XComponent;
_________________________
OpenOffice 2.4.1, WinXP SP3
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: JAVA-Pfade einrichten...

Beitrag von hol.sten »

Biks hat geschrieben:Wie kann ich die com.sun.XXX-Importe der Java-Umgebung zugänglich machen, so dass sie beim kompilieren gefunden werden? Geht das mit CLASSPATH? Der Begriff ist mir begegnet, aber ich weiß nicht, wo ich die Einstellungen dazu machen kann.
So geht CLASSPATH: http://de.wikipedia.org/wiki/Klassenpfad

Alle JAR-Dateien für OOo findest du in deinem OOo-Installationsverzeichnis im Unterverzeichnis "program\classes".
Biks hat geschrieben:PS: Konkret gesagt will ich zum Beispiel folgenden Import durchführen:
import com.sun.star.lang.XComponent;
Diese Klasse befindet sich in ridl.jar.

Bei einer OOo 2.2-Installation KÖNNTE das Verzeichnis der JAR-Dateien für OOo bei dir so aussehen:

Code: Alles auswählen

C:\Programme\OpenOffice.org2.2\program\classes
Wäre dem so, wird dir folgender CLASSPATH bei den meisten OOo-Projekten völlig ausreichen:

Code: Alles auswählen

set L=C:\Programme\OpenOffice.org2.2\program\classes
set CLASSPATH=%L%\juh.jar;%L%\jurt.jar;%L%\ridl.jar;%L%\unoil.jar
Aus deiner Frage schließe ich allerdings, dass du von Java keine Ahnung hast. Wundere dich daher nicht, wenn du mehr Probleme als Erfolge hast, da die Java-Programmierung von OOo wirklich kein Vergnügen ist.

Regards
hol.sten
Biks
*
Beiträge: 17
Registriert: Di, 20.02.2007 19:28
Wohnort: Beachtown

Re: JAVA-Pfade einrichten...

Beitrag von Biks »

hol.sten hat geschrieben: Aus deiner Frage schließe ich allerdings, dass du von Java keine Ahnung hast. Wundere dich daher nicht, wenn du mehr Probleme als Erfolge hast, da die Java-Programmierung von OOo wirklich kein Vergnügen ist.

Regards
hol.sten
Das siehst Du richtig ;) Auch wenn es so wie Du es sagst sehr hart klingt :lol: Doch ich bin zuversichtlich - solange ich hier weiterhin so kompetente Unterstützung bekomme.

Ich habe gedacht/gehofft, dass ich in der allgemeinen JAVA-Umgebung die CLASSPATH einstellen könnte. Aber beim Kompilieren ist auch okay, läuft ja eh über ein Batch.

Danke schön!

*EDIT* "CLASSPATH" ist also eine Systemvariable, die ich demnach auch bei den Betriebssystem-Einstellungen definieren kann. Das ist gut. Damit kann mir dann die Angaben beim Kompilieren sparen.

*EDIT2* Meine Lösung: Ich habe in XP in den Systemeigenschaften eine Systemvariable mit dem Verweis auf das OpenOffice Klassenverzeichnis erstellt:
Systemsteuerung>System>Erweitert>Umgebungsvariablen>Systemvariablen>Neu
Diese Variable gebe ich dann beim Kompilieren mit an:
javac -classpath "%OOKlassenverzeichnis%\XXXXXX.jar" javacode.java

Danke nochmals.
_________________________
OpenOffice 2.4.1, WinXP SP3
Antworten