0

使用 JasperReports 导出为 PDF 作品。但是当我导出到 CSV 时,我得到一个空文件:/

碧玉 .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="Unnamed" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30"> 

<field name="id" class="java.lang.Long"/>

<detail>
    <band height="100">
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" x="0" y="5" width="50" height="15"/>
            <box leftPadding="10" rightPadding="10"/>
            <textElement/>
            <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
        </textField>        
    </band>
</detail>

的java代码:

JasperReport jasperReport =       JasperCompileManager.compileReport(this.getClass().getClassLoader()
            .getResourceAsStream("template.jrxml"));

Map<String, Object> parameters = new HashMap<String, Object>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, getDataSource());

ByteArrayOutputStream baos = new ByteArrayOutputStream();
JRExporter exporter = new JRCsvExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
return baos.toByteArray();
4

2 回答 2

1

我看不到你在哪里调用 exporter.exportReport()。

于 2013-02-04T19:48:50.730 回答
1

是的,您只需要添加 exporter.exportReport();

在 exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos) 之后;

并且工作正常。

于 2020-10-16T21:55:20.370 回答