JasperReports如何在Excel中做分页

我正在试图在每个页面的底部和顶部的列标题页面编号/rest,所以从Excel打印时,所有的页面编号和领导。 这不应该是一个大问题,对吧? 但不幸的是,无论我尝试了什么方法,我都无法在页面底部获得页码和分页符 – 它们在其他任何地方,但在底部。 我把“页面的Y页”页面页脚部分,忽略分页不会被检查,当我生成的报告,我有页面X或Y后每4行数据。 我把页面高度扩展到Letter Landscape格式的标准高度的3-4倍,并且在18-20行数据之后改变了页脚的打印 – 这不是一个可靠的调整方法。 此外,我试图把打印时的分页符设置为每20行打印一次,但这仍然是不准确的,因为在第一页上我有较less的数据行,因为报告标题 – 如果我调整它是正确的第一页 – 它会打印在下一页中间的某个地方。 我在devise中错过了一些明显的东西,如何把页脚放到页脚? 任何帮助将不胜感激。

我已经在net.sf.jasperreports.export.xls.fit.height参数的帮助下解决了这个问题。

我将报告的高度和net.sf.jasperreports.export.xls.fit.height报告的属性设置为相同的值。

例子:

<jasperReport ... pageWidth="595" pageHeight="800" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> ... <parameter name="net.sf.jasperreports.export.xls.fit.height" class="java.lang.String" isForPrompting="false"> <defaultValueExpression><![CDATA[800]]></defaultValueExpression> </parameter> ... <detail> <band height="20" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="100" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{field1}]]></textFieldExpression> </textField> <textField> <reportElement x="100" y="0" width="100" height="20"/> <textElement/> <textFieldExpression><![CDATA[$F{field2}]]></textFieldExpression> </textField> </band> </detail> <pageFooter> <band height="20" splitType="Stretch"> <textField> <reportElement x="433" y="0" width="80" height="20"/> <textElement textAlignment="Right"/> <textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression> </textField> <textField evaluationTime="Report"> <reportElement x="513" y="0" width="40" height="20"/> <textElement/> <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> </textField> </band> </pageFooter> </jasperReport> 

结果(在MS Excel中预览):

结果在MS Excel

几年前我也尝试过同样的解决办法。 如果两者之间没有发生剧烈的变化(如果提供的话,我立即删除这个答案),那么你就会迷路了。

对不起。