JasperReports的可生产Excel文件列的宽度自动调整到内容是什么?(Can Jasper

2019-06-24 21:10发布

JasperReports输出在一个文件Excel xls格式,观察时的列仅在碧玉XML确定的固定的宽度。

这是一个问题,当在列中的数据是不同的宽度,导致一些列来包装的。

我有一个看看API和DTD和似乎没有要设置列宽自动调整的方式。

显示为ieinstead

  emailAdress
  @email.com

展示为

  emailAdress@email.com

是否有可能在所有做到这一点?

这个问题是相似的碧玉报告列宽

Answer 1:

我们可以实现自动列的宽度与帮助的效果net.sf.jasperreports.export.xls.auto.fit.column财产。 如果我们将该值设置为true自动宽度将被启用。 此属性的默认值是假的

工作样本

我们可以使用CSV数据源和简单的报表设计的JasperSoft Studio检查结果。

该报告的设计将是简单的-在细节带只有一个文本框

数据源

这是非常简单-只有一个电子邮件 。 第一行包含只是一个列的名称。 我们可以告诉数据源适配器跳过此第一道防线。

email
emailAdress@email.com
short@have.org
a@b.net

报告的模板

文本框的宽度将是太小,无法显示完整的文本。

“打开”自动宽度应设置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中打开):


笔记

  • 在这两种情况下的JasperSoft Studio中生成的XLS文件。
  • 该先进的Excel功能文章包含有关导出报告的技巧,以MS Excel格式的更多信息


文章来源: Can JasperReports produce Excel file with column widths auto adjusted to contents?