TextTabellen Ränder Formatieren

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: TextTabellen Ränder Formatieren

Re: TextTabellen Ränder Formatieren

von MacX182 » Mi, 23.07.2008 10:09

Vielen Dank. Funktioniert bestens.

Re: TextTabellen Ränder Formatieren

von turtle47 » Mi, 23.07.2008 10:02

Hallo MacX182,

folgender Code formatiert alle Tabellen in Deinem Dokument wie in der Beispieldatei:

Code: Alles auswählen

Sub Tabellenformat
	oDoc = thiscomponent
	Cursor = oDoc.Text.createTextCursor()
	oTables = oDoc.GetTextTables()
	Anzahl = oTables.getcount
	for i = 0 to Anzahl -1
	oTable = oTables(i)
	oBorder = oTable.Tableborder
	oBorderline = oBorder.TopLine
	oBorderline.outerlinewidth = 10
	oBorderline.innerlinewidth = 10
	oBorderline.linedistance = 100
	oBorderline.color = #000000	
	oBorder.Topline = oBorderline
	oBorder.Bottomline = oBorderline
	oBorder.Leftline = oBorderline
	oBorder.Rightline = oBorderline
	oBorder.Horizontalline = oBorderline
	oBorder.Verticalline = oBorderLine
	oBorder.Distance = 100
	oTable.Tableborder = oBorder
	next i 
End Sub
Einen Teil des Codes habe ich mir von Michaels Homepage ausgeliehen. :wink:
Da sind bestimmt auch noch mehr interessante Informationen für Dich enthalten.

Schöne Grüsse.

Jürgen

TextTabellen Ränder Formatieren

von MacX182 » Mi, 23.07.2008 09:09

Tag Zusammen,

nachdem ich das Forum und das Web ausgiebig danach durchsucht habe und nichts brauchbares gefunden habe kann ich jetzt nur noch auf eure Hilfe hoffen.
Folgende Problemstellung: Ich hab ein sehr großes Dokument(ca. 300 Seiten) mit mindestens genau so vielen Tabellen. Dieses sind wild durcheinander formatiert. Bisher habe ich es geschafft das alle Tabellen die Optimale Breite haben und die Zellen mittig sind. Jetzt sollen alle Tabellen noch den genau gleichen Tabellenrand bekommen. Ich hab die Aktion einfach mal Aufgezeichnet. Aber wenn ich dieses Makro auf eine identische Tabelle ausführe wird nur der äußere Rand formatiert und die inneren Linien verschwinden komplett. Ich hab ein Beispieldokument hochgeladen in dem das Problem wahrscheinlich besser zu verstehen ist. Hier noch der aufgezeichnete Code.

Code: Alles auswählen

sub Tabelle
	dim document   as object
	dim dispatcher as object

	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

	dim args1(4) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "BorderInner.Horizontal"
	args1(0).Value = Array(0,2,2,88)
	args1(1).Name = "BorderInner.Vertical"
	args1(1).Value = Array(0,2,2,88)
	args1(2).Name = "BorderInner.Flags"
	args1(2).Value = 3
	args1(3).Name = "BorderInner.ValidFlags"
	args1(3).Value = 127
	args1(4).Name = "BorderInner.DefaultDistance"
	args1(4).Value = 0

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

	dim args2(7) as new com.sun.star.beans.PropertyValue
	args2(0).Name = "BorderOuter.LeftBorder"
	args2(0).Value = Array(0,2,2,88)
	args2(1).Name = "BorderOuter.LeftDistance"
	args2(1).Value = 97
	args2(2).Name = "BorderOuter.RightBorder"
	args2(2).Value = Array(0,2,2,88)
	args2(3).Name = "BorderOuter.RightDistance"
	args2(3).Value = 97
	args2(4).Name = "BorderOuter.TopBorder"
	args2(4).Value = Array(0,2,2,88)
	args2(5).Name = "BorderOuter.TopDistance"
	args2(5).Value = 97
	args2(6).Name = "BorderOuter.BottomBorder"
	args2(6).Value = Array(0,2,2,88)
	args2(7).Name = "BorderOuter.BottomDistance"
	args2(7).Value = 97

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

	dim args3(3) as new com.sun.star.beans.PropertyValue
	args3(0).Name = "BorderShadow.Location"
	args3(0).Value = com.sun.star.table.ShadowLocation.NONE
	args3(1).Name = "BorderShadow.Width"
	args3(1).Value = 180
	args3(2).Name = "BorderShadow.IsTransparent"
	args3(2).Value = false
	args3(3).Name = "BorderShadow.Color"
	args3(3).Value = 8421504

	dispatcher.executeDispatch(document, ".uno:BorderShadow", "", 0, args3())
end sub
Dateianhänge
Beispiel_Tabellenrahmen.odt
(9.93 KiB) 37-mal heruntergeladen

Nach oben