net.sf.jasperreports.export.xls.auto.fit.columnプロパティを使用して、自動列幅の効果を実現できます。値をtrueに設定すると、自動幅が有効になります。このプロパティのデフォルト値はfalseです。
作業サンプル
Jaspersoft Studioで設計されたcsvデータソースとシンプルなレポートを使用して、結果を確認できます。
レポートのデザインはシンプルで、詳細バンドにtextFieldが 1 つだけあります。
情報源
これは非常に単純です。1 列のみの電子メールです。最初の行には、列の名前だけが含まれています。この最初の行をスキップするようにデータソース アダプタに指示できます。
email
emailAdress@email.com
short@have.org
a@b.net
レポートのテンプレート
textFieldの幅が小さすぎて、テキスト全体を表示できません。
自動幅を「オン」にするには、net.sf.jasperreports.export.xls.auto.fit.column プロパティを設定する必要があります。
jrxmlは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test_auto_width_excel" pageWidth="100" pageHeight="842" columnWidth="100" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="c899fa54-7405-4371-b34f-429f5959b593">
<queryString language="csv">
<![CDATA[]]>
</queryString>
<field name="email" class="java.lang.String"/>
<detail>
<band height="30" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="30" uuid="04d0735d-a1b6-4a8f-b252-b8772d7c5abd">
<property name="net.sf.jasperreports.export.xls.auto.fit.column" value="true"/>
</reportElement>
<textFieldExpression><![CDATA[$F{email}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
出力結果
プロパティを使用せずに生成されたxlsファイルは次のようになります ( MS Excelで開きます)。

net.sf.jasperreports.export.xls.auto.fit.columnプロパティで生成されたxlsファイルは次のようになります ( MS Excelで開きます)。

ノート