TextTable-Name

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: TextTable-Name

Re: TextTable-Name

von mipa » Mi, 16.04.2008 11:29

Hallo,

der Tabellenname kann leider nicht über eine Property der Tabelle ermittelt werden, das hatte ich ja über xProp.getPropertyValue("Name") probiert. Diese Property gibt es nicht.

Ich habe aber jetzt die Lösung gefunden, den Tabellennamen muss man über das Interface XNamed ermitteln.

Code: Alles auswählen

    XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, doc);

    XNameAccess xNamedTables = xTablesSupplier.getTextTables();

    XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xNamedTables);

    XPropertySet xTableProps = null;

    for (int i = 0; i < xIndexedTables.getCount(); i++){
       
       Object table = xIndexedTables.getByIndex(i);
       
	// Tabellenname
	XNamed xNamed = (XNamed) UnoRuntime.queryInterface(XNamed.class, table);
	String tableName = xNamed.getName();
    }
Danke und viele Grüße

Re: TextTable-Name

von Toxitom » Mi, 16.04.2008 10:53

Hallo Michaela,
mipa hat geschrieben:Leider geht das mit Java nicht so einfach wie mit Basic....
Na ja, da beide auf die API (und UNO) zugreifen, sind die Inhalte identisch. Möglicherweise nicht die Wege, sie zu erhalten....

Unter Basic ist der Tabellenname eine Eigenschaft des Objektes - und somit natürlich auch unter Java ;-). Wenn es keine direkte Methode dafür gibt (wie "getName()" oder so) hast du immer noch die Möglichkeit über getPropertyValue() zu gehen, wobei du den Namen der Eigenschaft übergibst. Nun programmier ich nicht Java, kenne also den exakten Weg nicht, nur sind alle Eigenschaften im Sammelcontainer vorhanden. Und die solltest du dort auch auslesen können :-)

Viele Grüße
Thomas

Re: TextTable-Name

von mipa » Mi, 16.04.2008 08:09

Hallo Winfried,

vielen Dank für Deine Antwort!

Leider geht das mit Java nicht so einfach wie mit Basic. Für meine Tabelle stehen mir Methoden wie zB getCellNames() zur Verfügung, aber leider kein getTableName() oder getName() :-(

Ich suche weiter...

Gruß, Michaela

Re: TextTable-Name

von komma4 » Di, 15.04.2008 17:16

Michaela,

Java-Code kann ich Dir keinen liefern... ich kann Dir aber sagen, dass der Name eine Eigenschaft der Tabelle selbst ist. In BASIC erhälst Du ihn also durch die Anweisung:

Code: Alles auswählen

msgbox table.getName()
angezeigt.

Hilft Dir das weiter?

TextTable-Name

von mipa » Di, 15.04.2008 15:09

Hallo,

ich möchte per Java durch ein Writer-Dokument wandern und alle Tabellennamen ermitteln. Die Ermittlung der Tabellen und wie man verschiedene Properties setzen kann, habe ich bereits gefunden:

Code: Alles auswählen

XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(XTextTablesSupplier.class, doc);

XNameAccess xNamedTables = xTablesSupplier.getTextTables();

XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, xNamedTables);

XPropertySet xTableProps = null;

for (int i = 0; i < xIndexedTables.getCount(); i++){
	
	Object table = xIndexedTables.getByIndex(i);
	
	xTableProps = (XPropertySet) 
		UnoRuntime.queryInterface(XPropertySet.class, table);
	
	xTableProps.setPropertyValue("BackColor", new Integer(0xC8FFB9));

	// Tabellenname???

	// String tableName = (String) xProp.getPropertyValue("Name"); --> gibt es nicht!

}
Ich brauche jedoch unbedingt den Tabellennamen. Er ist anscheinend keine Property der Tabelle.

Kann mir da jemand helfen?

Vielen Dank im Voraus und Gruß!
Michaela

Nach oben