我使用JRXlsxExporter
将我的JasperReport导出为XLSX格式。要创建输出流,我打开一个blob流并将其设置为SimpleOutputStreamExporterOutput
。在调用exporter.exportReport()
方法后,blob将保存到数据库中。
OutputStreamExporterOutput simpleOutputStreamExporterOutput = new SimpleOutputStreamExporterOutput(blob.setBinaryStream(1));
问题是,报告内容中有jpg图像部分。当报告导出到XLSX时,'图像无法显示'消息显示在xlsx中代替图像,但其余数据显示正常。
我尝试使用FileOutputStream
而不是blob流,并且导出的xlsx中包括图像在内的所有内容都很好。但由于我无法将导出的报告文件保存在应用程序服务器上,并且因为我必须将其作为blob写入数据库,所以我绝对希望使用blob流。
我使用DynamicReportBuilder addFirstPageImageBanner()
方法添加图片。
非常感谢任何帮助。谢谢!
这是我要求的jrxml文件的一部分。
<title>
<band height="30"/>
</title>
<pageHeader>
<band height="141">
<textField>
<reportElement x="0" y="78" width="290" height="78"/>
<textElement>
<font fontName="Times New Roman"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$P{reportInfo}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="58" width="290" height="20"/>
<textElement>
<font fontName="Times New Roman" size="14" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$P{reportType}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="38" width="290" height="20"/>
<textElement>
<font fontName="Times New Roman" size="14" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="0" width="290" height="38"/>
<textElement>
<font fontName="Times New Roman" size="18" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$P{title}]]></textFieldExpression>
</textField>
</band>
</pageHeader>
这里是添加图片的代码:
drb.addFirstPageImageBanner("imagepath" + "imagename", new Integer(197), new Integer(53), ImageBanner.ALIGN_LEFT);
答案 0 :(得分:0)
You can display images in XLS by click
-> report properties
-> advanced
-> edit properties
and search for :
net.sf.jasperreports.export.xls.ignore.graphic
and mark it as false
it will fix the problem ..