В настоящее время это возможно, добавив пару свойств в файл jrxml для каждого отчета.Взгляните на Расширенные возможности Excel для панелей замораживания.Если вы хотите заморозить все после заголовка первого столбца (в основном по левой стороне), это будет выглядеть так:
<staticText>
<reportElement style="Sans_Bold" mode="Opaque" x="0" y="60" width="104" height="20" forecolor="#FFFFFF" backcolor="#666666">
<property name="net.sf.jasperreports.export.xls.auto.filter" value="Start"/>
<property name="net.sf.jasperreports.export.xls.column.width" value="110"/>
<property name="net.sf.jasperreports.export.xls.freeze.column.edge" value="Left"/>
</reportElement>
<box>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
</box>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[State]]></text>
</staticText>
или если вы хотите заморозить все ниже заголовка, вы можете сделать что-то вроде этого нижесвои поля:
<staticText>
<reportElement style="Sans_Bold" mode="Opaque" x="316" y="60" width="199" height="20" forecolor="#FFFFFF" backcolor="#666666">
<property name="net.sf.jasperreports.export.xls.freeze.row.edge" value="Bottom"/>
</reportElement>
<box>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Street]]></text>
</staticText>
Если вы загружаете JasperReports zip, в нем есть демонстрационная папка, содержащая этот рабочий пример, в папке xlsfeatures.Наконец, нет, демо работало для меня при экспорте в xls, но не тогда, когда я пытался использовать xlsx (хотя мог быть способ заставить его работать, я не мог найти что-нибудь быстро).