[Gelöst]Text In Calc Zellen Ausrichten. (Abstand zum Inhalt)

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

Moderator: Moderatoren

Benutzeravatar
MikeRo
****
Beiträge: 153
Registriert: Mi, 20.01.2010 10:16

[Gelöst]Text In Calc Zellen Ausrichten. (Abstand zum Inhalt)

Beitrag von MikeRo »

Ich habe mal wieder ein Problem, zu dem ich keine Lösung finde.

Ich erstelle mit Folgendem Makro einen Tabellenrahmen.

Code: Alles auswählen

Sub Rahmen

			LetzterDatensatz = Positionen+11
			'Am Ende über Gesamtsumme herausfinden im Moment Fix
			
			
	Dim oLinie as new com.sun.star.table.BorderLine
	with oLinie
		.Color = rgb(0, 0, 0)
		.outerLineWidth = 40
	End with											'(AnfangSpalte,AngfangZeile,EndeSpalte,EndeZeile)
	
            Ergebnis = oSheet.getCellRangeByPosition(0,9,LetzteSpalte,LetzterDatensatz)
            Ergebnis.TopBorder = oLinie
            Ergebnis.BottomBorder = oLinie
            Ergebnis.LeftBorder = oLinie
            Ergebnis.RightBorder = oLinie
            

	ReDim oLinie2 as new com.sun.star.table.BorderLine
	with oLinie2
		.Color = rgb(0, 0, 0)
		.outerLineWidth = 120

	End with         
            Ergebnis = oSheet.getCellRangeByPosition(0,10,LetzteSpalte,10)
            Ergebnis.TopBorder = oLinie2
            Ergebnis.BottomBorder = oLinie2
            Ergebnis = oSheet.getCellRangeByPosition(0,LetzterDatensatz,LetzteSpalte,LetzterDatensatz)
            Ergebnis.TopBorder = oLinie2
            Ergebnis.BottomBorder = oLinie2      
                    
End Sub
Jetzt sollen die Werte in den Zellen aber nicht direkt am rechten Rand kleben, daher muss ich den Abstand einstellen. Ich habe zwar ein Makro aufgezeichnet aber das geht nur, wenn das Dokument offen ist und aktiv ist. Da das Dokument aber unsichtbar bearbeitet und dann fertig ausgespuckt wird. ist das unnütz

Code: Alles auswählen

REM  *****  BASIC  *****


sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$10:$Y$18"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(3) as new com.sun.star.beans.PropertyValue
args2(1).Name = "AlignmentMargin.RightMargin"
args2(1).Value = 100

dispatcher.executeDispatch(document, ".uno:AlignmentMargin", "", 0, args2())

end sub
Weiß jemand Rat?
Zuletzt geändert von MikeRo am Di, 03.05.2011 10:39, insgesamt 1-mal geändert.
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Text In Calc Zellen Ausrichten. (Abstand zum Inhalt)

Beitrag von F3K Total »

Hallo,
du kannst natürlich über die Properties der Borderline usw. gehen, ich hätte da einen vielleicht einfacheren Vorschlag:
Wenn Du in Deinem Ausgangsdokument unter Formatvorlagen eine Zellvorlage, z.B. mit dem Namen "Meine_Zellen" nach Deinen Wünschen gestaltest, kannst Du sie wie folgt dem CellRange zuordnen:

Code: Alles auswählen

Sub Rahmen

osheet=thiscomponent.sheets(0)
Ergebnis = oSheet.getCellRangeByPosition(0,0,10,10)
Ergebnis.CellStyle="Meine_Zellen"
                   
End Sub
Anbei eine Beispieldatei.

Gruß R
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Text In Calc Zellen Ausrichten. (Abstand zum Inhalt)

Beitrag von F3K Total »

Hallo,
ich habe doch noch herausgefunden, wie du den Abstand zum Zellrand einfach einstellen kannst:

Code: Alles auswählen

Ergebnis.HoriJustify=0  '0=Standard, 1=linksbündig,2=zentriert,3=rechtsbündig,4=Blocksatz
Ergebnis.ParaRightMargin=400'Abstand 0,4 cm zum rechten Rand
'Ergebnis.ParaLeftMargin=400'Abstand 0,4 cm zum linken Rand
Gruß R
Benutzeravatar
MikeRo
****
Beiträge: 153
Registriert: Mi, 20.01.2010 10:16

Re: Text In Calc Zellen Ausrichten. (Abstand zum Inhalt)

Beitrag von MikeRo »

F3K Total hat geschrieben:Hallo,
ich habe doch noch herausgefunden, wie du den Abstand zum Zellrand einfach einstellen kannst:

Code: Alles auswählen

Ergebnis.HoriJustify=0  '0=Standard, 1=linksbündig,2=zentriert,3=rechtsbündig,4=Blocksatz
Ergebnis.ParaRightMargin=400'Abstand 0,4 cm zum rechten Rand
'Ergebnis.ParaLeftMargin=400'Abstand 0,4 cm zum linken Rand
Gruß R
Super danke! Das klappt wunderbar. Die andere Methode kann ich nicht benutzen, da das Makro später im ganzen Büro genutzt wird.
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Antworten