gpt4 book ai didi

java - 与 JRXML/Jasper 报告相关的几个查询 - 修复 excel 中的单元格大小,使用 jrxml 中传递的参数

转载 作者:行者123 更新时间:2023-12-01 15:37:54 26 4
gpt4 key购买 nike

我在 map 中将两个日期设置为字符串,如下所示:

Map<String, String> hashmap = new HashMap<String, String>();
hashmap.put("date1", date1);
hashmap.put("date2", date2);

我使用的如下:

JasperReport jasperReport1 = JasperCompileManager.compileReport(this.reportName1);
JasperPrint jasperPrint1 = JasperFillManager.fillReport(jasperReport1, hashmap, con);
jprintList.add(jasperPrint1);

1) 如何在 JRXML 文件中使用传递的参数。

基本上,我正在比较日期上的两列,即日期 1 的第 1 列和日期 2 的第 2 列。

所以,我想在列标题中使用这些日期值。

<columnHeader>
<band height="11">
<rectangle>
<reportElement x="0" y="0" width="920" height="11" backcolor="#333333"/>
<graphicElement/>
</rectangle>
<staticText>
<reportElement mode="Opaque" x="20" y="0" width="80" height="11" forecolor="#ffffff" backcolor="#333333" style="Arial_Bold"/>
<textElement textAlignment="Left"/>
<text><![CDATA[Column for <here should come date1>]]></text>
</staticText>
<staticText>
<reportElement mode="Opaque" x="20" y="0" width="80" height="11" forecolor="#ffffff" backcolor="#333333" style="Arial_Bold"/>
<textElement textAlignment="Left"/>
<text><![CDATA[Column for <here should come date2>]]></text>
</staticText>
</columnHeader>

日期值将用在上面代码中的“位置。

2) 如何将文本换行形成列标题?

我正在以 Excel 格式导出报告。

为了保持列标题的信息丰富,我将标题设置为“显示 2011 年 12 月 12 日价格的列”——这相当长,因为我总共有 13 列,每列都有如此长的标题。

如何在 Excel 中自动换行或如何固定列标题的单元格大小。

我应该在 JRXML 中进行哪些更改?

3) 我正在 jprintlist 中传递几份报告。每个报告都会在最终 Excel 文件中的单独工作表中发布。如何给工作表命名?默认情况下,它从标签中获取 jasperReport 的 name 属性,并在末尾添加 1、2。

Ans:得到了答案

exporter.setParameter(JRXlsExporterParameter.SHEET_NAMES, new String[]{”Personal Information”, “Skills”});

感谢您的阅读!

最佳答案

1) How to use this passed parameters in the JRXML file.

您可以使用$P{}表达式来使用参数。示例:

<text><![CDATA[Column for $P{date}]]></text>

2) How to wrap the text forming column title?

您可以使用 isStretchWithOverflowstretchType 来允许标题增长。

示例:

<columnHeader>
<band height="20" splitType="Stretch">
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="20"/>
<box leftPadding="5">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA["Column for " + $P{title1}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToTallestObject" x="100" y="0" width="100" height="20"/>
<box leftPadding="5">
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA["Column for " + $P{title2}]]></textFieldExpression>
</textField>
</band>
</columnHeader>

结果将是(Excel 预览):

enter image description here

您还可以尝试为 textField 元素设置 net.sf.jasperreports.export.xls.wrap.text 属性。您可以阅读有关此属性的信息 here .

示例:

<textField>
<reportElement x="100" y="0" width="100" height="20">
<property name="net.sf.jasperreports.export.xls.wrap.text" value="false"/>
</reportElement>
<textElement/>
<textFieldExpression><![CDATA["Column for " + $P{title2}]]></textFieldExpression>
</textField>

关于java - 与 JRXML/Jasper 报告相关的几个查询 - 修复 excel 中的单元格大小,使用 jrxml 中传递的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com