Long Calc Sheet - промежуточный итог внизу страницы, переход на следующую страницу?

463
tohuwawohu

Предположим, у меня есть лист LibreOffice Calc, охватывающий несколько страниц в распечатке. Есть ли способ рассчитать промежуточный итог для каждой страницы и распечатать его в нижней части соответствующей страницы, а также в верхней части следующей страницы?

Я знаю, что можно использовать промежуточные итоги для автоматического вычисления промежуточных итогов, но «только» в зависимости от данных (например, даты, имена, номера деталей), но не просто для каждой страницы. Кроме того, рассчитанный промежуточный итог не появится на следующей странице.

0

1 ответ на вопрос

1
DrMoishe Pippik

Значения ячеек, такие как итоги, могут быть помещены в верхний и / или нижний колонтитул с помощью макроса. Приведенный ниже макрос был создан Zizi64, Тибором Ковачем, для Open Office и скопирован из его таблицы Prestige2.ods по ссылке выше. Измените его для своих нужд.

Это было проверено в LibreOffice и работает. Конечно, вам нужно включить макросы в Параметры | Безопасность. В приведенном ниже примере вызов макроса EditFooterHeader () вставляет значение ячейки L1 в нижний колонтитул.

Calling macro EditFooterHeader

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

ОПЦИЯ EXPLICIT

Функция EditFooterText (WS_Index как целое число, MyFooterLeftText, MyFooterCenterText, MyFooterRightText как строка) как строка

Dim oDocument как Object Dim oSheet как объект Dim oPStyle как Object Dim oThisStyle как Object Dim oFContent как Object Dim oText как Object Dim oCursor как Object Dim oField как Object Dim i как целое число Dim StyleName как строка Dim sAns как строка

 rem Adjusting the actual pagestyle (Pagestyle of actual WorkSheet 

в этом документе) oDocument = ThisComponent oSheet = oDocument.Sheets.getByIndex (WS_Index-1) oPStyle = oDocument.

 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.NONEChUoror = com.sun.star.awt.FontUnderline.NONE '' вставить текст ... '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. oONE 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 

Похожие вопросы