当前位置: 首页 > 知识库问答 >
问题:

用spring从jasper报表中导出Excel单元格格式

禄光霁
2023-03-14

我们有一个内部的遗留java库,可以用jasper spring生成报告,并将它们导出为html、pdf或xls。然而,excel文件的所有单元格都具有相同的格式(没有),我们有一个报告,其中一列填充了文本,有人担心它会被解释为带有数值的公式或其他类型的代码。同样,我们有应该出现在报告中的带有前导零的字符串。我试过设置JExcelApiExporterParameter。通过jasperExportParameters将IS_DETECT_CELL_TYPE设置为true。

报告配置是通过xml完成的,如下所示:

<bean id="jasperReportHeader" class="java.lang.String">
    <constructor-arg>
        <value>
        <![CDATA[
            <html>
        ]]>
        </value>
    </constructor-arg>
</bean>

<bean id="jasperExportParameters" class="java.util.HashMap">
    <constructor-arg>
        <map>
            <entry
                  key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN"
                value="false" />
            <entry
                key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI">
                <value><![CDATA[utils.jasper?opcion=muestraImagen&image=]]></value>
            </entry>
            <entry
                key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.HTML_HEADER">
                <ref bean="jasperReportHeader" />
            </entry>
            <entry
                key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.HTML_FOOTER">
                <ref bean="jasperReportFooter" />
            </entry>
            <entry
                key="net.sf.jasperreports.engine.export.JRCsvExporterParameter.FIELD_DELIMITER"
                value="|" />
            <entry
                key="net.sf.jasperreports.engine.export.JExcelApiExporterParameter.IS_DETECT_CELL_TYPE"
                value="true" />
        </map>
    </constructor-arg>
</bean>

<bean id="jasperReportFooter" class="java.lang.String">
    <constructor-arg>
        <value>
        <![CDATA[
      </html>
        ]]>
        </value>
    </constructor-arg>
</bean>

<!-- REPORTES -->

<bean id="solicitudRevisionView"
    class="mx.org.rfe.ife.siirfe.comun.web.spring.views.jasper.CustomJasperReportsMultiFormatView">
    <property name="url" value="/WEB-INF/reportes/SOLICITUD_REVISION.jasper" />
    <property name="exporterParameters" ref="jasperExportParameters" />
</bean>

我怎样才能告诉jasper格式化单元格与文本格式?它是可行的吗?

这个库使用的是jasper 4.6.0,但是如果需要的话,我可以迁移。我们的报告已使用iReport 3.7.6进行了编辑。

共有1个答案

荀金鹏
2023-03-14

Jasperreports不会将您的单元格解释为公式,除非您告诉它它们是公式。另一方面,我猜您的导出器参数没有正确设置,映射声明被输入到< code > CustomJasperReportsMultiFormatView 中。我认为不应该是地图声明,而应该是类似于

<bean id="solicitudRevisionView"
class="mx.org.rfe.ife.siirfe.comun.web.spring.views.jasper.CustomJasperReportsMultiFormatView">
<property name="url" value="/WEB-INF/reportes/SOLICITUD_REVISION.jasper" />
<property name="exporterParameters">
 <props>
   <prop name="net.sf.jasperreports.export.xls.detect.cell.type">true</prop>
 </props>
</property>

因为您的Spring xml配置文件中的Java常量,如net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,除非您以不同的方式执行,否则不会计算。

 类似资料:
  • 问题内容: 我正在处理生成Excel文件的JasperReport报告。由于某种原因,我的单元格格式/类型不应该如此。例如,我的单元格中有Date对象,但是当我生成Excel文件时,它将单元格类型设置为Number,或者Long类型是单元格中的文本,但是单元格的格式是number,并且当用户编辑日期单元格时(例如,日期为11/02) / 2012更改为11/03/2012),它将日期转换为数字(4

  • 在互联网上搜索时,我找到了关于在报告中创建中断的答案,在子报告“true”中有“忽略分页”选项,但对我来说仍然不清楚。 我有哪些选项来控制创建新工作表的方式和时间

  • 有人知道从工作簿中的每个工作表中提取某个单元格值的命令吗?或者我可以写一个简单的宏?

  • 背景: 在项目开发中,经常需要下载模板/导出表单数据(excel)格式的需求,虽然xlsx库可以满足基本需求,但是有些excel表的样式很难定制化,所以想着自己封装一个 尝试: 封装思路: excel和table关联起来,而连接两者的桥梁为new Blob()构造函数,示例代码如下: 结果: 可以正常生成excel文件 缺点: 但是又有点不太像excel的格式,比如我想在excel表里面新增行或者

  • 我在Jaspersoft Studio 6.11.0+Java lib net.sf.JasperReports 6.11.0上遇到了一个奇怪的问题 我正在测试一个简单的报告,从Studio生成的报告很好,但是从Java生成的报告就不行了。 这是从Jaspersoft Studio生成的 在Java代码中,Pojo实例被数据填充,用Jackson封送,用JRXmlUtils解析成org.w3c.d