Libre Office

Tabellen-Layouts / Tabellenformate vereinheitlichen

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
F3K Total
* LO-Experte *
Beiträge: 2533
Registriert: So 10. Apr 2011, 10:10

Re: Tabellen-Layouts / Tabellenformate vereinheitlichen

Beitrag von F3K Total » Sa 14. Nov 2026, 09:26

Guten Morgen zusammen,
sehr schön dass es jetzt funktioniert.

Noch ein Hinweis am Rande, weil es doch etwas kompliziert war:
Sollte jemand die Spaltenbreiten per Array direkt im Makro einstellen wollen, so muss er wissen, dass sie in 1/1000 cm bezogen auf die Breite der Tabelle 100% = 10000 angegeben werden müssen.
Es gibt da den Wert ...

Code: Alles auswählen

.TableColumnRelativeSum
... und der steht bei 10000.
Hier ein Beispielcode:

Code: Alles auswählen

Sub S_modify_table
    nTableWidth = 15000'Breite der Tabelle 15cm
    nTableOrient = 3 'links
    nNewColumnsCount = 6
    nColumns_Width = Array(2500,5000,7500,10000,12500) 'Position der Spaltentrenner von links in cm * 1000
    oTexttables = ThisComponent.Texttables
    oTable = oTexttables(0) 'erste Tabelle
    nTableColumnRelativeSum = oTable.TableColumnRelativeSum ' Fest eingetragener Wert von 10000
    otable.HoriOrient =  nTableOrient 'Ausrichtung der Tabelle
    oTable.Width = nTableWidth 'Breite
    nColumnsCount =  oTable.Columns.Count
    if nColumnsCount < nNewColumnsCount then 
        otable.columns.insertbyindex(nColumnsCount,nNewColumnsCount-nColumnsCount) 'Spalten zufügen falls weniger als erste Tabelle
    endif
    aTableColumnSeparators = oTable.TableColumnSeparators  'Spaltenbreiten auslesen
    for i = 0 to uBound (aTableColumnSeparators)
         aTableColumnSeparator = aTableColumnSeparators(i)
         aTableColumnSeparator.Position = nColumns_Width(i)/nTableWidth * nTableColumnRelativeSum 'relative Breite, bezogen auf 10000
         aTableColumnSeparators(i) = aTableColumnSeparator
    next i
    oTable.TableColumnSeparators = aTableColumnSeparators' Spaltenbreiten auf die Tabelle anwenden.
End Sub
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Karli
Beiträge: 6
Registriert: Do 12. Nov 2026, 17:24

Re: Tabellen-Layouts / Tabellenformate vereinheitlichen

Beitrag von Karli » Sa 14. Nov 2026, 18:27

Hallo @F3K Total,
danke für den Array-Ansatz.
Ich habe mich ein wenig damit beschäftigt, das Array um die Werte 13000 und 13500, sowie die Spaltenanzahl von 6 auf 8 und die Tabellenbreite auf 16000 erweitert. Dabei ist mir aufgefallen, dass die beiden neuen Spalten nicht an das Ende der Tabelle , sondern an der vorletzten Position eingefügt werden. Das hatte ich so nicht erwartet.
Ansonsten passen die Spaltenbreiten sowie die Gesamtbreite der Tabelle.
Grüße
Karli

Open Office
Antworten