Tabellenspalte und -breite in Textdokument ändern - Lösung

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

Moderator: Moderatoren

HM
**
Beiträge: 22
Registriert: Mi, 23.06.2004 20:49
Wohnort: bei München

Tabellenspalte und -breite in Textdokument ändern - Lösung

Beitrag von HM »

Hallo,

ich habe hier im Forum vor einigen Tagen zu folgendem Problem um Hilfe gesucht: "Tabellenbreite und Breite einer Tabellenspalte in einem Textdokument ändern".
Hier ist nun eine Lösung, vielleicht kann sie ja jemand brauchen.

Da ich mich nicht mit fremden Federn schmücken will, voher noch die Quellen, aus denen ich das ganze zusammengebastelt habe:

Spaltenbreite in einer neu erstellten Tabelle ändern:
http://www.oooforum.org/forum/viewtopic ... 2205#12205

Tabellenränder in einer neu erstellten Tabelle rechts und links verschieben:
http://api.openoffice.org/docs/common/r ... Table.html

Einfügen von neuen Spalten in eine Tabelle:
Basic-Programmierhandbuch von Sun


Sub Breite

Dim Doc as Object
Dim TextTables as Object
Dim Table as Object
Dim Col as Object
dim Spalt as Object
Dim I as Integer
Dim Inputval as integer
dim Zahl as Integer
dim TabelZaehler as Integer
dim ViewCursor as Object
dim oText as Object
dim TblColSeps

Doc = StarDesktop.CurrentComponent
TextTables = Doc.getTextTables()


'Inputbox Minimalwert 1 Maximalwert 4
'inputval Anzahl der einzufügenden Spalten
inputval = inputbox("","Bitte nur Zahlen eingeben zwischen 1 und 4 eingeben","Geben Sie die Zahl ein")
if inputval < 1 or Inputval > 4 then
msgbox "Bitte nur Zahlen zwischen 1 und 4 eingeben"
exit sub
end if

'Anzahl der Schleifendurchläufe anhand
'der Tabellenzahl
Zahl = TextTables.count()

for TabelZaehler = 0 to (Zahl - 1)

Table = TextTables(TabelZaehler)

I = 0

Col = TextTables(TabelZaehler).getColumns

'Anzahl der Spalten in der Tabelle
I = Col.getcount()

'Einfügen von Wert-Inputval Spalten nach der I-ten Spalte
Table.columns.insertByIndex(I,Inputval)

'linken Tabellenrand 3 cm (=3000 100stel mm)
'rechten Tabellenrand 3,5 cm vom Textrand einrücken
'ACHTUNG Tabellenausrichtung muss auf manuell gestellt sein!!
Table.LeftMargin = 3000
Table.RightMargin = 3500

ViewCursor = Doc.getCurrentController().getViewCursor()

TblColSeps = Table.TableColumnSeparators

'Abstand des rechten Randes der ersten Spalte vom Textrand
TblColSeps( 0 ).Position = 5000

'Spaltenrand versetzen
Table.TableColumnSeparators = TblColSeps

next TabelZaehler

End Sub


Gruß

Herbert

P.S.
Das Ganze ist natürlich noch ausbaufähig