Calc Makro: Wo ist der Seitenumbruch?

Ich benötige in einem Makro die Zeile eines Calc-Tabellenblatts, vor (oder nach) der ein Seitenumbruch erfolgt. Wenn die Zeilenhöhe immer gleich ist, kann ich die Seitenhöhe durch die Zeilenhöhe dividieren und so die Anzahl der Zeilen auf einer Seite feststellen. Aber da können Rundungsfehler auftreten. Hilft auch nicht wirklich mit komplexeren Blattstrukturen.

Was könnt ihr mir empfehlen?

Schöne Grüße
Volker

Hey Volker,

oDoc.sheets.getByName("DeinTabellenbalttName").RowPageBreaks()

liefert Dir eine Liste von Structs aller PagePreaks . Achtung! Die Liste ist seeeeeehr lang, wir haben immerhin über 1 Mio Zeilen;)

Jeder Struct beinhaltet zwei Element:

- ManualBreak     True oder False

- Position      als long          Zeile des Umbruchs

Dort kannst Du die Werte auslesen.

Aber: Die werden erst generiert, wenn Du wenigstens einmal die Seitenvorschau aktiviert hast (oder so) , kann sein, dass die bei einem jungfreulichen Sheet noch nciht vorhanden sind. Ausprobieren:)

Hängen im Übrigen von der jeweiligen Seitenvorlage sowie den Einstellungen zum Zoom ab.

Viele Grüße

Thomas

Wow, danke Thomas,

oDoc.sheets.getByName("DeinTabellenbalttName").RowPageBreaks()

liefert Dir eine Liste von Structs aller PagePreaks . Achtung! Die Liste ist seeeeeehr lang, wir haben immerhin über 1 Mio Zeilen;)

Jeder Struct beinhaltet zwei Element:

- ManualBreak     True oder False

- Position      als long          Zeile des Umbruchs

habe ich gleich getestet, funktioniert wie geschmiert. Welches Interface stellt diese Methode bereit? In der API-Referenz habe ich das nicht gefunden. Bin ich blind oder ist das nicht dokumentiert? Gibt es dann auch .ColumnPageBreaks?

Schöne Grüße
Volker

Hei Volker,

[..]

habe ich gleich getestet, funktioniert wie geschmiert. Welches Interface stellt diese Methode bereit? In der API-Referenz habe ich das nicht gefunden. Bin ich blind oder ist das nicht dokumentiert? Gibt es dann auch .ColumnPageBreaks?

Jo, gibt auch ein ColumnPageBreak :slight_smile:

Findest Du alles in com::sun::star::sheet::XSheetPageBreak <https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1sheet_1_1XSheetPageBreak.html>

VG
Thomas

Oje, muss ich gleich Montag einen Termin mit meinem Optiker machen. Danke.

Schöne Grüße
Volker