AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle in OpenOffice zugreifen

Ein Thema von NicoleWagner · begonnen am 15. Jan 2020 · letzter Beitrag vom 25. Jan 2020
Antwort Antwort
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#1

Tabelle in OpenOffice zugreifen

  Alt 15. Jan 2020, 21:30
In LibreOffice 6.4. (der Nachfolger von OpenOffice) habe ich eine Tabelle mit sehr vielen Zeilen zu je 2 oder 3 Zellen.
Ich möchte nach dem "String" der ersten Zelle suchen und mir die zweite Zelle als Text ausgeben lassen.

Ich frage also von Delphi etwa ab "Blumen und Nelken" (Zelle 1) und bekomme als Antwort die Zelle 2, also Hausnummer "Vorkommen überall und in Klein-Asien, bitte stell sie in die Vase".
(die dritte Zelle ist fakultativ und ich brauche sie nicht)

Meine Fragen:
Wie lese ich eine OO Tabelle zeilenweise (!) in Delphi ein? Denn zuweilen sind es zwei, manchmal drei Zellen.
Wie greife ich die Zellen darauf zu?

Altenativ: Wie verwandle ich eine OO Tabelle in eine Firebird-DB-Tabelle? (ja, das ist kühn, doch die Hoffnung stirbt zuletzt)

Danke für Tipps!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Tabelle in OpenOffice zugreifen

  Alt 15. Jan 2020, 21:35
Hallo,
vielleicht findest Du hier was dazu
https://www.freepascal.org/~michael/...openoffice.pdf
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Tabelle in OpenOffice zugreifen

  Alt 16. Jan 2020, 07:29

Altenativ: Wie verwandle ich eine OO Tabelle in eine Firebird-DB-Tabelle? (ja, das ist kühn, doch die Hoffnung stirbt zuletzt)
Wenn es da nichts outofthebox gibt dann ist Dein Stichort ASCIIDelimited(CSV).Das geht so ziemlich mit allen Datenbanken und Tabellenkalkulationen. Du mußt nur aufpassen, daß Dir die eingebaute Intelligenz keinenStrich durch die Rechnung macht. Also der Delimiter und die Quotes sollten möglichtst auf beiden Seiten definierbar sein.
Und der verwendete Zeichensatz muß natürlich von beiden Seiten verstanden werden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.873 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Tabelle in OpenOffice zugreifen

  Alt 16. Jan 2020, 08:58
Ich bin schon länger von OpenOffice auf LibreOffice gewechselt. In LibreOffice wurde in StarBase die intere Datenbank von HSQL auf FireBird embedded umgestellt. Hier gäbe es u.U. eine Möglichkeit die Daten einfach zu konvertieren. Sonst halt über den Umweg von CSV.
Markus Kinzler
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Tabelle in OpenOffice zugreifen

  Alt 16. Jan 2020, 15:23
Danke für alle Antworten.

Meine Schwierigkeit: Wenn ich die Tabelle in text konvertiere, dann bleibt davon ein sinnloser Haufen Textschnipsel übrig. Womit sie cvs mit sehr hohe Wahrhscheinlichkeit erübrigt. (Ich habe da Arbeit in 50 Seiten Tabelle investiert. Erst danach fiel mir ein.... usw. Ihr kennt das.)

Aufhorchen lässt mich "LibreOffice" und "Firebird". Ja doch, ich habe LibreOffice 6.4.0.1
Hast Du da Details dazu wie man das in Delphi / Firbird bringt?

Und gerade probierte ich, die Tabelle mit copy und paste in ods (Format für Calc = "Excel") zu bringen. Das hat geklappt.
Innerhalb von Excel hätte ich jetzt noch die VBA Möglichkeit. Doch in Calc probierte ich die noch nie und wie ich VBA mit Delphi interagieren lassen könnte, da schaue ich leider nur vollkommen ratlos.

Doch grundsätzlich: auch Zugriff in ods wäre ein Weg.



PS: ein weiterer Weg wäre, wenn ich via Delphi OO / LO öffnen könnte mit Parameter: Datei und eine Suchanfrage-nach-einem-String. Diese Suchanfrage würde mir dann auch die Datei / Tabelle / Zelle / Zeile an der richtigen Stelle öffnen.

Geändert von NicoleWagner (16. Jan 2020 um 16:35 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Tabelle in OpenOffice zugreifen

  Alt 16. Jan 2020, 17:07
In dem Dokument, das hoika verlinkt hat, steht doch mMn alles drin, um anzufangen. Nur anstatt ein Calc/OpenOffice-Dokument zu öffnen und was reinzuschreiben, liest man es halt aus.
Ralph
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
981 Beiträge
 
Delphi 6 Professional
 
#7

AW: Tabelle in OpenOffice zugreifen

  Alt 16. Jan 2020, 19:02
Hmm..

Könnte es sein, dass beide (Libre Office und Open Office) noch die selbe OLE-Schnittstelle haben?

Wenn ja, kannst Du wie z.B. bei EXECL per OLE direkt das Dokument im Libre Office öffnen und die Zellen einfach per Schleife auslesen.

Wir hatten vor längerem per OLE mit OpenOffice Daten als Tablle per Calc exportiert..

Wenn der obrige Link (von hoika) nicht reicht, einfach mal nach OpenOffice und OLE googlen..
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#8

AW: Tabelle in OpenOffice zugreifen

  Alt 16. Jan 2020, 19:02
Ich bin von dem Dokument etwas überfordert.

Wie etwa würdest Du formulieren:


string_erste_Zelle:= (Tabelle x, erste Zeile, erste Zelle);
string_erste_Zelle_Text_der_dazgehört:=(Tabelle x, erste Zeile, zweite Zelle);

Wenn eine dritte Zelle mit gebrochenem Verweis vorhanden ist oder gar keine dritte Zelle, dann geht zur zweiten Zeile.
Ist der Verweis gültig, speichere die Seitenzahl.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
981 Beiträge
 
Delphi 6 Professional
 
#9

AW: Tabelle in OpenOffice zugreifen

  Alt 17. Jan 2020, 09:30
Hmm..

Hab da mal was zusammen gebastelt..

Das (einfache) Testtool ist mit D6 erstellt, sollte aber auch unter 10.x laufen. Habe hierzu das aktuelle LibreOffice (Ver.6.3.4.2 x64) verwendet.

Es liest eine ODS mithilfe OLE über LibreOffice in ein StringGrid ein, um Dir zu zeigen, wie auf eine Celle zugegriffen werden kann.

Performanter würde dies natürlich über eine Range statt der einzelnen Cell gehen, aber hier geht es erstmal um das Grundverständnis.
Angehängte Dateien
Dateityp: zip Test_OO_Calc.zip (260,4 KB, 40x aufgerufen)
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: Tabelle in OpenOffice zugreifen

  Alt 17. Jan 2020, 10:51
Andere Idee:
aus der zweizeiligen Relation eine einzeilige machen:

a|b |c|d
--------------
1|schlüssel|.|..
2|wert |.|..
3|..
4

a|b |c|d |e
----------------|
1|schlüssel|.|..|wert |.|..|
x|xxxx |.|..|
3|..


Diese Operation macht man per Makro in Excel oder LO

Das Ergebnis ist eine Datei, die als CSV oder wie auch immer zu einer Tabelle werden kann. Die Tabelle ist ganz einfach durchsuchbar (klassich) und man erhält zum gefundenen Schlüssel gleich alle Werte.

P.S.: Mit smarten DB kann man auch alles so lassen und es per Window Function Query über LAG() oder LEAD() lösen. Einfach alles in SQLite bspw. importieren oder postgreSQL.
Gruß, Jo

Geändert von jobo (17. Jan 2020 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz