Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Tabelle in OpenOffice zugreifen (https://www.delphipraxis.net/203128-tabelle-openoffice-zugreifen.html)

NicoleWagner 15. Jan 2020 20:30

Tabelle in OpenOffice zugreifen
 
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!

hoika 15. Jan 2020 20:35

AW: Tabelle in OpenOffice zugreifen
 
Hallo,
vielleicht findest Du hier was dazu
https://www.freepascal.org/~michael/...openoffice.pdf

p80286 16. Jan 2020 06:29

AW: Tabelle in OpenOffice zugreifen
 
Zitat:

Zitat von NicoleWagner (Beitrag 1455271)

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

mkinzler 16. Jan 2020 07:58

AW: Tabelle in OpenOffice zugreifen
 
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.

NicoleWagner 16. Jan 2020 14:23

AW: Tabelle in OpenOffice zugreifen
 
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.

Jumpy 16. Jan 2020 16:07

AW: Tabelle in OpenOffice zugreifen
 
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.

HolgerX 16. Jan 2020 18:02

AW: Tabelle in OpenOffice zugreifen
 
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..

NicoleWagner 16. Jan 2020 18:02

AW: Tabelle in OpenOffice zugreifen
 
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.

NicoleWagner 16. Jan 2020 19:30

AW: Tabelle in OpenOffice zugreifen
 
@ Holger

Googelte OLE und wieder erschlugen mich die Ergebnisse.

Ich hoffte hier ein paar Zeilen kopieren zu können.
https://www.swissdelphicenter.ch/de/...de.php?id=1728

Doch ich scheitere schon hier:
XLApp := CreateOleObject('Excel.Application');
Ich lese "undeklarierter Bezeichner ole-Object"

Du hast sicher schon erraten, dass ich von OLE keine Ahnung habe.
Also suchte ich in meiner Tool Palette und fand:
TOleContainer.
Den klebte ich auf mein Formular.

Man kann wohl davon ausgehen, dass es völlig absurd ist, was ich versuchte. Doch weiß ich im Augenblick nicht, wo ich beginnen könnte, dass es Sinn macht.

hoika 16. Jan 2020 22:11

AW: Tabelle in OpenOffice zugreifen
 
Hallo,
was hat denn Excel mit Libre-Office zu tun?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz