Long Calc Sheet - Zwischensumme am Seitenende, auf nächste Seite übertragen?

575
tohuwawohu

Angenommen, ich habe ein LibreOffice Calc-Blatt, das mehrere Seiten des Ausdrucks umfasst. Gibt es eine Möglichkeit, eine Zwischensumme für jede Seite zu berechnen und diese am unteren Rand der jeweiligen Seite sowie am oberen Rand der folgenden Seite zu drucken?

Ich weiß, dass man Zwischensummen verwenden kann, um Zwischensummen automatisch zu berechnen, aber "nur" abhängig von den Daten (z. B. Datumsangaben, Namen, Teilenummern), aber nicht einfach für jede Seite. Darüber hinaus wird die berechnete Zwischensumme nicht auf der nächsten Seite angezeigt.

0

1 Antwort auf die Frage

1
DrMoishe Pippik

Zellwerte wie Summen können mithilfe eines Makros in eine Kopf- und / oder Fußzeile eingefügt werden. Das folgende Makro wurde von Zizi64, Tibor Kovacs, für Open Office erstellt und wird aus seiner Tabelle Prestige2.ods aus dem obigen Link kopiert . Ändern Sie es für Ihre Bedürfnisse.

Dies wurde in LibreOffice getestet und funktioniert. Natürlich müssen Sie Makros in Optionen | aktivieren Sicherheit. In dem folgenden Beispiel fügt der Aufruf des Makros EditFooterHeader () den Wert der Zelle L1 in die Fußzeile ein.

Calling macro EditFooterHeader

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

OPTION EXPLICIT

Funktion EditFooterText (WS_Index als Ganzzahl, MyFooterLeftText, MyFooterCenterText, MyFooterRightText als Zeichenfolge) als String

Dim oDocument als Objekt Dim oSheet als Objekt Dim oPStyle als Objekt Dim oThisStyle als Objekt Dim oFContent als Objekt Dim oText als Objekt Dim oCursor als Objekt Dim oField als Objekt Dim i als Ganzzahl Dim StyleName als String Dim sAns als String

 rem Adjusting the actual pagestyle (Pagestyle of actual WorkSheet 

in diesem Dokument) oDocument = ThisComponent oSheet = oDocument.Sheets.getByIndex (WS_Index-1) oPStyle = oDocument.StyleFamilies.getByName ("PageStyles") oThisStyle = oPStyle.getByName (oSheet.PageStyle) StyleName =

 oThisStyle.FooterOn = True 'Zizi64: False/True turns on/off the running foot  oFContent = oThisStyle.RightPageFooterContent 'Zizi64: Get the all text from running foot 

'************************************************** ******* 'oText = oFContent.LeftText' oCursor = oText.createTextCursor () 'oText.insertString (oCursor, "", True)

'oCursor.CharHeight = 12' oCursor.CharFontName = "Arial" 'oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL' oCursor.CharPosture = com.sun.star.awt.FontSlant.NONE 'oCursor.CharUnder = com.sun.star.awt.FontUnderline.NONE '' Text einfügen ... 'oText.insertString (oCursor, MyFooterLeftText, False)' ******************* ***************************************

'oText = oFContent.CenterText' oCursor = oText.createTextCursor () 'oText.insertString (oCursor, "", True)

'oCursor.CharHeight = 12' oCursor.CharFontName = "Courir New" 'oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL' oCursor.CharPosture = com.sun.star.awt.FontSlant.NONE 'oCursor. CharUnderline = com.sun.star.awt.FontUnderline.NONE

'oText.insertString (oCursor, MyFooterCenterText, False)' **************************************** *******************

 oText = oFContent.RightText  oCursor = oText.createTextCursor()  oText.insertString(oCursor, "", True)  oCursor.CharHeight = 12 oCursor.CharFontName = "Times New Roman" oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL oCursor.CharPosture = com.sun.star.awt.FontSlant.NONE oCursor.CharUnderline = com.sun.star.awt.FontUnderline.NONE  oText.insertString(oCursor, MyFooterRightText, False) '********************************************************     oThisStyle.RightPageFooterContent = oFContent 'write content back into running foot  EditFooterText = StyleName & ": Style modified!:" End function