JasperReport报表中输出Excel时,部分列不显示的问题

JasperReport开源报表功能强大,是我们WEB系统中做报表开发的一个强有力的工具,上手也比较简单。  
我碰到的问题是进行报表输出时,在html网页中显示正常,但如果导出为Excel时,部分列不显示。  
我用的报表设计工具不是iReport,而是官方推荐采用的Jaspersoft Studio。

先看一下,设计视图:  

出现的问题截图如下:

Excel预览也正常:

输出Excel就不正常了:

问题原因是什么呢,不知道的以为是字体、背景、单元格设置方面有问题,其实都不是。

原因很简单,表头的各个列、各个列数据都不能有重叠,有重叠问题就来了(html输出不受影响),预览正常,导出就不正常! 

截图说明如下:

原因很简单,但是找到这个原因却费了很大的功夫,所以贡献出来和大家分享。

WEB项目开发中碰到的问题千奇百怪,大家如果想在开发过程中少走一点弯路,少踩一点坑,可以看看我的视频教程:Spring Boot开发小而完整web项目:https://edu.51cto.com/sd/091c7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
JasperReport是一个强大的报表生成工具,支持生成多种格式的报表,包括PDF、Excel、Word等。下面是使用JasperReport生成Excel报表的简单步骤: 1. 创建报表模板:使用JasperStudio创建报表模板,选择Excel作为输出格式,并设计报表布局和样式。 2. 定义数据源:定义报表所需的数据源,可以是数据库、XML文件等。 3. 编写Java代码:使用Java代码调用JasperReport API,读取数据源并将数据填充到报表模板,最终生成Excel报表。 下面是一个简单的示例代码: ```java // 加载报表模板 JasperReport jasperReport = JasperCompileManager.compileReport("report.jrxml"); // 定义数据源 JRDataSource dataSource = new JREmptyDataSource(); // 填充数据并生成Excel报表 JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, dataSource); JRXlsxExporter exporter = new JRXlsxExporter(); exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("report.xlsx")); SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration(); configuration.setOnePagePerSheet(true); exporter.setConfiguration(configuration); exporter.exportReport(); ``` 在这个示例,我们首先加载报表模板,然后定义一个空的数据源。接下来,使用JasperFillManager将数据源填充到报表模板,并生成一个JasperPrint对象。最后,我们使用JRXlsxExporter将JasperPrint对象导出为Excel文件。在导出Excel文件,我们可以通过SimpleXlsxReportConfiguration设置导出选项,例如每页一个工作表等。 需要注意的是,JasperReport生成Excel报表的效果可能不如专业的Excel工具,例如Microsoft Excel或LibreOffice Calc。如果需要生成复杂的Excel报表,建议使用专业的Excel工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江成军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值