Может ли JasperReports создать файл Excel с шириной столбца, автоматически подстраиваемой под содержимое?

КогдаJasperReports выводит файл вExcel формате @ xls столбцы при просмотре имеют только фиксированную ширину, определенную в XML-файле jasper.

Это проблема, когда данные в столбцах имеют разную ширину, что приводит к переносу некоторых столбцов.

Я посмотрел на API и DTD и, кажется, нет способа установить ширину столбцов для автоматической настройки.

i.e. вместо отображения как

  emailAdress
  @email.com

отобразить как

  [email protected]

Можно ли вообще это сделать?

Этот вопрос похож на Ширина столбца отчета Джаспер

Ответы на вопрос(1)

Net.sf.jasperreports.export.xls.auto.fit.column свойство. Если мы установим значение какправд the авто ширина будет включен. Значением по умолчанию этого свойства являетсяложны.

Рабочий образец

Мы можем использовать @ C источник данных и простой отчет, разработанный вJaspersoft Studio чтобы проверить результат.

Дизайн отчета будет простым - только одинтекстовое пол в Деталь группа

Источник данны

Это очень просто - только один столбецЭл. адре. Первая строка содержит только имя столбца. Мы можем попросить адаптер источника данных пропустить эту первую строку.

email
[email protected]
[email protected]
[email protected]
Шаблон отчета

Ширинатекстовое пол будет слишком маленьким, чтобы показать полный текст.

То"включать" автоматическая ширина, мы должны установить Net.sf.jasperreports.export.xls.auto.fit.column свойство

The 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):

Сгенерированный XLS файл с Net.sf.jasperreports.export.xls.auto.fit.column свойство выглядит так (открывается вMS Excel):

Заметк

В обоих случаях XLS файлы были сгенерированы вJaspersoft Studio.The Расширенные возможности Excel статья содержит больше информации о хитростях экспорта отчета вMS Excel формат

Ваш ответ на вопрос