2

JasperReportsファイルをxls形式で出力する場合、Excel表示される列は、jasperXMLで決定された固定幅のみです。

これは、列のデータの幅が変化し、一部の列が折り返される場合に問題になります。

APIDTDを確認しましたが、列幅を自動調整する方法がないようです。

つまり、として表示する代わりに

  メールアドレス
  @ email.com

表示

  emailAdress@email.com

これを行うことは可能ですか?

この質問は、 Jasperレポートの列幅に似ています

4

1 に答える 1

2

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で開きます)。

ここに画像の説明を入力


ノート

于 2016-07-06T22:01:32.763 に答える