JasperReports/iReport 中的 Excel 数据源 : Unable to get value for field  'Date'  of class  'java.sql.Date'

标签 excel jasper-reports ireport

我使用 Excel 文件作为数据源来使用 iReport 构建报告。 xls 文件包含日期 yyyy-MM-dd 格式。

我已将 Date 字段类设置为 java.sql.Date,然后单击 iReport 中的预览。有一个错误:Unable to get value for field 'Date' of class 'java.sql.Date'.
我也尝试过 java.util.Date 。你有什么想法?

最佳答案

这很简单。

我有这样的 xls 文件(birhdays.xls):

enter image description here

数据源定义(在 iReport 中)是:

enter image description here

从上图中可以看出,我设置了 yyyy-MM-dd DS 定义中日期字段的格式。

jrxml文件中的日期字段定义:

<field name="Birthday" class="java.util.Date"/>

完整的 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="excel_ds" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b0f82d57-325b-4c30-b635-f464851e0a47">
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="Name" class="java.lang.String"/>
    <field name="Birthday" class="java.util.Date"/>
    <columnHeader>
        <band height="20" splitType="Stretch">
            <staticText>
                <reportElement uuid="cd75f6d9-1781-4938-bf24-178b6663bcd1" x="0" y="0" width="147" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Name]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="5d4c21f1-9afd-40c7-ade0-6fcc0b3d8373" x="147" y="0" width="100" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Birthday]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement uuid="82f5a338-ef5d-4838-8cd0-c2544af3a73d" x="0" y="0" width="147" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{Name}]]></textFieldExpression>
            </textField>
            <textField pattern="dd/MM/yyyy">
                <reportElement uuid="e6eb6f83-b8f3-42fd-b116-02db2322b6a5" x="147" y="0" width="100" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{Birthday}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

结果将是(通过 iReport 中的预览):

enter image description here

笔记:

我用过 iReport 5.1.0

关于JasperReports/iReport 中的 Excel 数据源 : Unable to get value for field  'Date'  of class  'java.sql.Date' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18258850/

相关文章:

grails - Grails Jasper隐藏参数

java - 设置horizo​​ntalAlignment没有完全右对齐PageXofYBuilder

excel - 使用 perl 编辑 Excel 数据透视表

python - 在 Linux 上使用 Python 读取 Excel 单元格注释?

arrays - 如何将变量值舍入到数组中的下一个最低数字?

java - Jasper Report—— HashMap 或子报告

java - 如何在不执行另一个查询的情况下获得图表中的不同计数?

jasper-reports - jasperReport/iReport子报告显示为空白(未显示)

java - 将 JTextArea 设置为 jasper 报表

excel - 从 Col1 和 Col2 中的文本写入 Col3 中的不匹配数据