Hallo,
ich versuche mich gerade ein wenig an der OpenOffice-Manupulation durch externe Programme. Wie ich in einem scal-Dokument in die Zellen der Tabelle schreiben kann, ist mir soweit klar.
In Delphi z.B.:
sh := Document.Sheets.getByName(sheet);
bm := sh.getCellbyPosition(xpos,ypos);
bm.setString(inhalt);
Wie mache ich das aber in einem sWriter-Dokument, wo im schlimmsten Falle mehrere Tabellen enthalten sind? Ich habe im Netz schon ein wenig nach Makros gesucht, konnte da aber für sWriter-Tabellen leider noch nichts finden.
Gruß
LvB
(gelöst) sWriter, Tabelle ansprechen
Moderator: Moderatoren
(gelöst) sWriter, Tabelle ansprechen
Zuletzt geändert von LokutusvB am Mi, 04.11.2009 16:20, insgesamt 1-mal geändert.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: sWriter, Tabelle ansprechen
Willkommen im Forum
Hilft Dir das?
Nutze Xray!
Code: Alles auswählen
oTables = ThisComponent.Texttables()
oTabelle1 = oTables.getByName( "Aufstellung" )
oTabelle2 = oTables.getByIndex( 2 )
Hilft Dir das?
Nutze Xray!
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)
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)
Re: sWriter, Tabelle ansprechen
hallo komma4!
Danke dir, dein Ansatz hat mir sehr geholfen!
Meine Lösung lautet:
Ich bin die ganze Zeit von einem Fehler ausgegangen, obwohl es die ganze zeit schon funktioniert hätte. Der Einfachheit halber habe ich ein World-Dokument mit Tabellen in OpenOffice Writer geöffnet und einfach als ODT-Dokument gespeichert. Mit diesem Dokument habe ich mich jetzt einige Stunden geplagt, nichts hat funktioniert. Daraufhin habe ich ein neues Dokument in sWriter erstellt, Tabellen eingefügt, und siehe da, schon geht es. Mal kann sich das Leben auch extra schwehr machen
.
Na trozdem danke für deine Hilfe!.
Danke dir, dein Ansatz hat mir sehr geholfen!

Meine Lösung lautet:
Code: Alles auswählen
function OO_Utils.InsertInTextTable(table, xpos, ypos: Integer; txt: String): Boolean;
var
tables, aktTable, bm :Variant;
begin
tables := Document.getTextTables;
aktTable := tables.getByIndex(table);
bm := aktTable.getCellbyPosition(xpos, ypos);
bm.setString(txt);
Result := True;
end;

Na trozdem danke für deine Hilfe!.