【问题标题】:How do I Export to CSV Without Header & Footer repeating?如何在不重复页眉和页脚的情况下导出为 CSV?
【发布时间】:2013-06-29 20:26:34
【问题描述】:

我想导出为 CSV,页眉和页脚只显示一次

The current output:
Name   Address Hobby
AAA    US      XXXXX
BBB    UK      XXXXX
(Footer)
Name   Address Hobby
CCC    ID      XXXXX
DDD    CC      XXXXX
(Footer)
Name   Address Hobby
EEE    SA      XXXXX
FFF    ZM      XXXXX
(Footer)

The desired output:
Name   Address Hobby
AAA    US      XXXXX
BBB    UK      XXXXX
CCC    ID      XXXXX
DDD    CC      XXXXX
EEE    SA      XXXXX
FFF    ZM      XXXXX
(Footer)

那么如何让页眉和页脚只显示一次呢?

编辑:

页脚看起来像

版本:1.0.0
AcademicProgramBusinessEntityCentreDoma 执行时间:00:00:00.00
/NWU/StudentInformation/AcademicProgramDevelopment Build: v1.0.9 - Dev

【问题讨论】:

  • 你能发布 jrxml 文件吗?你在说什么页脚
  • 编辑了帖子,以便您可以看到页脚,并且我正在更改 Jasper 代码而不是 jrxml,否则我将不得不更改所有 jrxml
  • Group Footer 还是 Column Footer 还是 Page FooterAnd I'm making changes to the Jasper code - 你在谈论 Java 代码吗?您是使用 jrxml 文件还是借助 Java 代码动态生成报告?
  • 它是我只希望在顶部和底部的页脚和页眉,& 是的,我正在更改 Java 代码,并且报告保存在 jrxml 文件中(当我导出到 Excel 时导出按我想要的方式工作,但 CSV 没有运气)
  • 如果你有 jrxml - 你应该发布它,如果你有 Java 代码 - 你应该发布它

标签: jasper-reports export-to-csv


【解决方案1】:

您可以使用 net.sf.jasperreports.export.{format}.exclude.origin.{suffix}.{arbitrary_name}(有关详细信息,请参阅http://jasperreports.sourceforge.net/config.reference.html 页面)属性排除波段(Page HeaderPage Footer 在您的情况下)用于导出器。

样本:

输入数据,csv文件(数据源):

AAA,US,XXXXX
BBB,UK,XXXXX
CCC,ID,XXXXX
DDD,CC,XXXXX
EEE,SA,XXXXX
FFF,ZM,XXXXX

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="exclude_band_for_csv" language="groovy" pageWidth="595" pageHeight="120" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0" uuid="daaa60dc-b91b-4e9b-bbc0-6189af985ef9">
    <property name="net.sf.jasperreports.export.csv.exclude.origin.band.1" value="pageHeader"/>
    <property name="net.sf.jasperreports.export.csv.exclude.origin.band.2" value="pageFooter"/>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="Name" class="java.lang.String"/>
    <field name="Address" class="java.lang.String"/>
    <field name="Hobby" class="java.lang.String"/>
    <pageHeader>
        <band height="35" splitType="Stretch">
            <staticText>
                <reportElement uuid="9da294e6-b5b7-489f-9469-7edb539315da" x="117" y="0" width="380" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="14"/>
                </textElement>
                <text><![CDATA[Page Header]]></text>
            </staticText>
        </band>
    </pageHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement uuid="6a615d39-86f1-4a74-8ae7-4f8ca8e19afe" x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{Name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="df0929d2-34c0-4561-ab98-e6e5ce37fd11" x="100" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{Address}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="675381d8-57b3-427f-88e4-ec4725ea3462" x="200" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{Hobby}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <pageFooter>
        <band height="45" splitType="Stretch">
            <staticText>
                <reportElement uuid="9da294e6-b5b7-489f-9469-7edb539315da" x="127" y="10" width="380" height="20"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="14"/>
                </textElement>
                <text><![CDATA[Page Footer]]></text>
            </staticText>
        </band>
    </pageFooter>
</jasperReport>

iReport中的报表设计:

JRPdfExporter 的结果将是:

两个波段都存在于 PDF 文件中

JRCsvExporter 的结果将是(输出 csv 文件):

AAA,US,XXXXX
BBB,UK,XXXXX
CCC,ID,XXXXX
DDD,CC,XXXXX
EEE,SA,XXXXX
FFF,ZM,XXXXX

CSV 文件中没有两个波段。

如您所见,我已为 JRCsvExporter 排除了两个波段(Page HeaderPage Footer)。


更多详情你也可以看这个帖子:JasperReports: hide textfield when not HTML view

【讨论】:

    【解决方案2】:

    为了防止列标题重复,您可以使用以下属性:

    net.sf.jasperreports.export.{format}.exclude.origin.keep.first.{suffix}.{arbitrary_name}
    

    例如,为了避免在您编写的 csv 中重复列标题:

    <property name="net.sf.jasperreports.export.csv.exclude.origin.keep.first.band.1" value="columnHeader"/>
    

    https://community.jaspersoft.com/wiki/how-can-i-suppress-page-headers-and-footers-when-exporting-xls

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多