JasperReports / iReport中的Excel数据源:无法获取类“java.sql.Date”的字段“Date”的值

我已经使用Excel文件作为数据源来构build报告与iReportxls文件包含dateyyyy-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 ):

在这里输入图像说明

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

在这里输入图像说明

从上面的图片可以看出,我在DS定义中为date字段设置了yyyy-MM-dd格式。

jrxml文件中的date字段定义:

 <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预览):

在这里输入图像说明

注意

我已经使用iReport 5.1.0