Aktuell markierte Zelle in TextTable - Adresse?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Aktuell markierte Zelle in TextTable - Adresse?

Beitrag von Stephan »

Hallo,

in einem Writerdokument befindet sich der sichtbare Cursor in einer Zelle einer Texttabelle. Den Namen dieser Zelle bekomme ich so:

Code: Alles auswählen

oSels = ThisComponent.getCurrentSelection()
oSel = oSels.getByIndex(0)
oCell = oSel.Cell
Msgbox oCell.CellName
Wie aber bekomme ich Zeile und Spalte dieser Zelle?
Geht das nur indirekt, z.B. indem ich durch alle Zellen interiere bis ich die Zelle passenden Namens gefunden habe? (Ich finde kein RangeAddress-Object der Zelle.(?) Oder bin ich blind?)


Gruß
Stephan
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Aktuell markierte Zelle in TextTable - Adresse?

Beitrag von mikeleb »

Hallo Stephan,
es scheint keine Adresse wie in Calc zu geben. Am einfachsten wäre es, den Text der Adresse zu zerlegen und daraus Zeile und Spalte zu bestimmen.
Gruß,
mikeleb
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Aktuell markierte Zelle in TextTable - Adresse?

Beitrag von Stephan »

mikeleb hat geschrieben: Di, 11.07.2017 20:20 Hallo Stephan,
es scheint keine Adresse wie in Calc zu geben. Am einfachsten wäre es, den Text der Adresse zu zerlegen und daraus Zeile und Spalte zu bestimmen.
ja, sieht so aus.

Ich verwende jetzt zum Bestimmen der Zeile:

Code: Alles auswählen

v_cur = ThisComponent.getCurrentController().getViewCursor()
	If v_cur.Text.ImplementationName = "SwXCell" Then
		If v_cur.TextTable.Name = "Tabelle_1" Then
			aktuelle_zelle = v_cur.Cell.CellName
			tmp = LEN(aktuelle_zelle)
			aktuelle_zeile = VAL(Right(aktuelle_zelle, tmp-1))
		End If
	End If
Hinweise:
(a)
dieser Code geht vereinfachend davon aus das eine Writer-Tabelle wohl kaum mehr als 26 Spalten (A-Z) haben wird. In Fällen wo doch mehr als 26 vorkommen können müsste der Code erweitert werden.
(b)
die bestimmte Zeile entspricht der Zeilennummer (erste Zeile =1)


Gruß
Stephan
Antworten