Seite 1 von 2

Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 21.10.2015 00:29
von Kurzer
Hallo,

ich möchte von einer PB Anwendung aus Textdaten in ein OpenOffice Tabellenblatt einfügen. Also gezielt einzelne Zellen mit Daten befüllen.

Hat damit jemand Erfahrung und kann mir sagen wie der Datentransfer realisiert werden kann? Über den Import einer CSV Datei funktioniert es zwar, aber ich möchte die Daten gerne ohne weitere Schritte in das Tabellenblatt übertragen.

Vermutlich realisiert man das mit DDE, aber dazu fehlt mir noch der logische und programmtechnische Ansatz.
Bin für Hinweise die mich weiterbringen dankbar.

Gruß Kurzer

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 21.10.2015 00:50
von Kiffi
schau Dir hierfür mal die Excel-Funktionssammlung von Falko an:

http://www.purebasic.fr/german/viewtopi ... =8&t=23254

Grüße ... Peter

Re: AW: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 21.10.2015 23:58
von Kurzer
Hallo Kiffi,

Besten Dank für den Link. Das sieht sehr viel versprechend aus!
Bin leider gerade unterwegs, werde das gleich nutzen, sobald ich wieder am heimischen Rechner bin.

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 24.10.2015 00:53
von Kurzer
Leider funktioniert das COMatePlus offenbar nicht mit OpenOffice zusammen - oder ich stell mich zu dumm an.

Mir würde auch schon reichen, wenn ich die Daten so in die zwischenablage bekomme, dass Sie in Calc/Excel mittels paste direkt in die verschiedenen Zellen kopiert werden. Momentan wird der gesamte String "A;B;C;D" in eine Zelle geschrieben, statt in vier Zellen.

Weiß hierzu jemand eine Lösung? Wenn ich mehrere Zellen direkt in Calc markiere und per copy/paste an anderer Stelle einfüge, dann werden die Daten auch in mehrere Zellen kopiert. Von daher denke ich, dass die Daten in einem bestimmten Format in der Zwischenablage vorliegen müssen, um auf mehrere Zellen verteilt zu werden.

Edit: Manches ist doch einfacher als man denkt. Es reicht, wenn die Strings, die in unterschiedlichen Zellen landen sollen, durch TAB $09 getrennt sind. Zeilenwechsel dann mit #LF#CR oder #LF. Juhu.

"Apfel" TAB "Birne" LF
"Banane" TAB "Kiwi" LFCR

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 24.10.2015 16:41
von Derren
Kannst auch ne HTML-Tabelle in die Zwischenablage packen, wenn du formatieren willst ;)

Code: Alles auswählen

<table>
    <tr><td style="background-color:red"><b>Apfel</b></td><td style="background-color:yellow">Birne</td></tr>
    <tr><td style="background-color:yellow">Banane</td><td style="background-color:green; border:1px solid black">Kiwi</td></tr>
</table>

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 24.10.2015 16:53
von Kiffi
Kurzer hat geschrieben:Leider funktioniert das COMatePlus offenbar nicht mit OpenOffice zusammen - oder ich stell mich zu dumm an.
mea culpa! Ich habe Deine Anfrage nicht richtig gelesen und bin bei den Begriffen 'Tabellenblatt', 'Zellen' und 'CSV automatisch davon ausgegangen, dass Du mit Excel arbeitest. :oops:

Sorry & Grüße ... Peter

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 24.10.2015 20:05
von Kurzer
@Kiffi, kein Ding, ist nix passiert. :) Ich war ja auch nicht am Bombe entschärfen und wollte wissen blauer Draht oder roter Draht.
@Derren: Danke für den Hinweis, das mit dem HTML Format kannte ich auch nicht nicht.

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 24.10.2015 21:10
von Shardik
Hast Du schon die Beispiele von romel ausprobiert, die mit COMatePLUS ein OpenOffice Calc-Tabellenblatt erstellen und als ODS-Datei (1.Posting) und Excel-Datei (2.Posting) abspeichern? Ich kann es selbst momentan nicht ausprobieren, weil ich gerade mit MacOS X arbeite...

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 24.10.2015 21:34
von Kurzer
Ja, ich bin da weiter am Ball, aber die Thematik "COM" ist mir zu komplex. Für das richtige Verständnis kann ich mich derzeit nicht intensiv genug mit der Programmierung beschäftigen.

Das Beispiel von Rommel habe ich ausprobiert, aber hier bekomme ich Fehlermeldungen bei der Compilierung mit COMatePlus 1.2
Ich habe das ganze dann mal mit PB 4.61 kompiliert. Hier wurden "nur noch" zwei Strukturen in "VariantHelper_Include.pb" als "bereits deklariert" angemeckert:

Structure SAFEARRAYBOUND und Structure SAFEARRAY

Wenn ich die auskommentiere, dann kann ich mit PB 4.61 zwar kompilieren, aber folgende Codestelle aus Rommels Beispiel wird dann immer mit False geprüft und demzufolge der ganze Code im "IF oSM" nicht ausgeführt.

Code: Alles auswählen

oSM = COMate_CreateObject("com.sun.star.ServiceManager")
  
  If oSM
    ;Creating instance of Desktop
    oDesk = oSM\GetObjectProperty("CreateInstance('com.sun.star.frame.Desktop')")
    If oDesk
      ;Opening a new calc Document 
      [...]
So ganz komme ich mit vollautomatischen Übergabe an OpenOffice also nicht weiter.
Leider finde ich im Netz auch keine Beispiele, wie man ein OpenOffice Sheet aus einer anderen Programmiersprache füllen kann. Zumindest keines, das das dann über WinAPI macht.

Re: Wie OpenOffice / Excel Sheet befüllen?

Verfasst: 24.10.2015 22:19
von Derren
Offen, also echtzeit? Ansonsten ist es doch nur XML gezippt. Muss man sich reinfuchsen, aber denke einzelne Zellen ansprechen sollte machbar sein.