Seite 1 von 1

(gelöst) sWriter, Tabelle ansprechen

Verfasst: Mi, 04.11.2009 13:29
von LokutusvB
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

Re: sWriter, Tabelle ansprechen

Verfasst: Mi, 04.11.2009 13:44
von komma4
Willkommen im Forum

Code: Alles auswählen

oTables = ThisComponent.Texttables()

oTabelle1 = oTables.getByName( "Aufstellung" )
oTabelle2 = oTables.getByIndex( 2 ) 

Hilft Dir das?


Nutze Xray!

Re: sWriter, Tabelle ansprechen

Verfasst: Mi, 04.11.2009 15:44
von LokutusvB
hallo komma4!

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;
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!.