Je travaille sur le rapport JasperReport qui génère un fichier Excel. Pour une raison quelconque, mes formats / types de cellules ne sont pas comment ils devraient être. Par exemple, j'ai un objet de date dans ma cellule, mais lorsque je génère un fichier Excel, il définit le type de cellule sur le numéro ou le type long est un texte dans la cellule mais le format de la cellule est numéro et lorsque l'utilisateur modifie la cellule de date (par exemple avec la date 11/02 / 2012 a changé en 11/03/2012) Il convertit la date au numéro (41581.00).
Voici mon code (il génère simplement le flux contextuel à la fenêtre du navigateur avec le rapport): P>
<textField isStretchWithOverflow="true" isBlankWhenNull="true"> <reportElement style="alternateStyle" stretchType="RelativeToBandHeight" x="0" y="0" width="100" height="20"/> <textElement/> <textFieldExpression class="java.lang.Long"><![CDATA[$F{id}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true" isBlankWhenNull="true"> <reportElement style="alternateStyle" stretchType="RelativeToBandHeight" x="200" y="0" width="100" height="20"/> <textElement/> <textFieldExpression class="java.lang.String"><![CDATA[$F{emsProdNo}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true" isBlankWhenNull="true"> <reportElement style="alternateStyle" stretchType="RelativeToBandHeight" x="100" y="0" width="100" height="20"/> <textElement/> <textFieldExpression class="java.lang.String"><![CDATA[$F{courseName}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true" pattern="MMMMM dd, yyyy" isBlankWhenNull="true"> <reportElement style="alternateStyle" stretchType="RelativeToBandHeight" x="300" y="0" width="98" height="20"/> <textElement> <font isUnderline="true"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[$F{startDate}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true" isBlankWhenNull="true"> <reportElement style="alternateStyle" stretchType="RelativeToBandHeight" x="474" y="0" width="81" height="20"/> <textElement/> <textFieldExpression class="java.lang.String"><![CDATA[$F{endDateStr}]]></textFieldExpression> </textField>
4 Réponses :
Le problème est / était que, parce que j'utilise POI 3.5 et JasperReports 3.7.0 et générer le format Excel XLSX. POI 3.5 sera pris en charge dans JasperReports 3.7.1 (ou simplement obtenir un instantané de SVN). Alors, qu'est-ce que j'ai fait, je viens de retourner au vieux fichier Excel (XLS) et cela a fonctionné parfaitement. p>
juste fyi ou is_detect_cell_type, boolean.true code> est celui qui donne la date à passer au numéro. p> p>
Donc, ce que vous dites, c'est que lorsque cet indicateur est sur la cellule d'Excel ne reconnaîtra pas correctement le type de date à la date. Lorsque cela est défini sur False Number, les champs vont mal. Alors, comment puis-je faire fonctionner les deux types bien i xlsx?
jasperReports em> stry> version 4.1.1 net.sf.jasperreports.export.xls.pattern em> strong> a été introduit. p>
vérifier p>
dans les expressions de propriétés strong> p>
nom de propriétés em> >> net.sf.jasperreports.export.xls.pattern p>
valeur de propriétés em> >> @ pour texte, aaaa-mm-dd pour le format de date, #, ## 0,00; - #, ## 0,00 pour la monnaie, etc .... p >