假设我有一张打印输出中横跨多页的 LibreOffice Calc 工作表。有没有办法计算每页的小计并将其打印在相应页面的底部以及下一页的顶部?
我知道可以使用小计来自动计算小计,但“仅”取决于数据(例如日期、名称、零件编号),而不是简单地针对每一页。此外,计算出的小计不会出现在下一页上。
答案1
单元格值(例如总计)可以放在页眉和/或页脚中通过使用宏。下面的宏由 Zizi64(Tibor Kovacs)创建,用于开发办公室并从他的电子表格中复制而来Prestige2.ods来自上面的链接。根据您的需要进行修改。
这已在自由办公室并且它起作用了。当然,您需要在选项 | 安全中启用宏。在下面的示例中,调用宏 EditFooterHeader() 会将单元格 L1 的值插入到页脚中。
REM ***** 基本 *****
选项明确
函数 EditFooterText(WS_Index 作为整数,MyFooterLeftText,MyFooterCenterText,MyFooterRightText 作为字符串) 作为字符串
Dim oDocument 作为对象 Dim oSheet 作为对象 Dim oPStyle 作为对象 Dim oThisStyle 作为对象 Dim oFContent 作为对象 Dim oText 作为对象 Dim oCursor 作为对象 Dim oField 作为对象 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.StyleFamilies.getByName("PageStyles") oThisStyle = oPStyle.getByName(oSheet.PageStyle) StyleName = oThisStyle.Name
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 ' ' 插入文本... ' 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