Długi arkusz kalkulacyjny - suma częściowa u dołu strony, przeniesienie do następnej strony?

0

Załóżmy, że mam wydruk LibreOffice Calc obejmujący wiele stron wydruku. Czy istnieje sposób obliczenia sumy pośredniej dla każdej strony i wydrukowania jej na dole odpowiedniej strony, a także na górze następnej strony?

Wiem, że można używać sum częściowych do automatycznego obliczania sum częściowych, ale „tylko” w zależności od danych (np. Dat, nazw, numerów części), ale nie tylko dla każdej strony. Ponadto obliczona suma pośrednia nie pojawi się na następnej stronie.

tohuwawohu
źródło

Odpowiedzi:

1

Wartości komórek, takie jak sumy, można umieścić w nagłówku i / lub stopce za pomocą makra. Poniższe makro zostało utworzone przez Zizi64, Tibora Kovacsa dla Open Office i jest kopiowane z arkusza kalkulacyjnego Prestige2.ods z linku powyżej. Zmodyfikuj go do swoich potrzeb.

Zostało to przetestowane w LibreOffice i działa. Oczywiście musisz włączyć makra w Opcjach | Bezpieczeństwo. W poniższym przykładzie wywołanie makra EditFooterHeader () wstawia wartość komórki L1 do stopki.

Wywołanie makra EditFooterHeader

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

WYJAŚNIENIE OPCJI

Funkcja EditFooterText (WS_Index jako liczba całkowita, MyFooterLeftText, MyFooterCenterText, MyFooterRightText jako ciąg) jako ciąg

Dim oDocument jako Object Dim oSheet jako obiekt Dim oPStyle jako Object Dim oThisStyle jako Object Dim oFContent jako Object Dim oText jako Object Dim oCursor jako Object Dim oField jako Object Dim i jako liczba całkowita Dim StyleName jako ciąg Dim sAns jako String

  rem Adjusting the actual pagestyle (Pagestyle of actual WorkSheet

w tym dokumencie) oDocument = ThisComponent oSheet = oDocument.Sheets.getByIndex (WS_Index-1) oPStyle = oDocument.StyleFamilies.getByName („PageStyles”) oThisStyle = oPStyle.getByName (oShehty).

    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.CharUnderline = com.sun.star.awt.FontUnderline.NONE '' wstaw tekst ... '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
DrMoishe Pippik
źródło