在网上找了许多i
report的用法的教程,有一些写的乱七八糟,这个应该是最详细的了,从安装到使用,但是它的java代码有点问题,可参考。
https://www.cnblogs.com/HeXiaoZhou/p/8485100.html
以前在新浪博客上发表过一篇<jasperreport实现excel的冻结窗口>的思路。由于当时的客户后来不再要求实现该功能,后来就没再多思考。今天偶登录新浪博客,发现有人要例子源码,于是就总结实现了下。
先说下原理,jasperreport是没有实现冻结窗口功能的,但其底层用的是POI框架,也就是jasperreport是对poi的一个封装。POI是实现了对窗口冻结功能的,所以...
在报表的xml中需配有
net.sf.jasperreports.export.xls.freeze.row.edge (参数Top、 Bottom), 配置Top,即锁定行到设置此属性的单元格。
net.sf.jasperreports.export.xls.freeze.column.edge (参数Left、Right), 配置Left,即锁定列到设置此属性的单元...
上一次我们使用JasperReport导出了PDF格式的报表文件,我们这次利用同样的jasper文件,来在硬盘中导出Excel报表。
实现导出的Java的详细代码请查看上一篇,这里只修改最后的启动类代码。
我们先回顾一下jasper的实际效果:
然后我们修改一下启动类代码,之前打印pdf的代码为:
package com.cn.org.ireport.test;
数据源采用Jason数据源,json串如下
[{"num1":1,"num2":2,"num3":3},{"num1":4,"num2":5,"num3":6}]
将jason串写入文本文件保存,命名为source.txt(文件名可以随意命名)
二、创建json数据源
1、按照如下图中红色标记所示创建数据源
<dependency>
<groupId>net.sf.j
asperreports</groupId>
<artifactId>j
asperreports</artifactId>
<v
ersion>6.17.0</v
ersion>
</dependency>
2. 配置J
asperReport
在application.prop
erties文件中添加以下配置:
# J
asperReport配置
j
asperreport.compile.on.first.use=true
j
asperreport.cache.directory=./j
asperreport_cache
3. 编写Controll
er
编写Controll
er,使用J
asperReport生成报表并返回给前端。
@RestControll
er
public class
ReportControll
er {
@GetMapping("/
report")
public void gen
erat
eReport(HttpS
ervletResponse response) throws Exception {
// 获取J
asperReport模板文件
InputStream j
asperStream = this.getClass().getResourceAsStream("/
reports/
report.j
asper");
// 设置参数
Map<String, Object> params = new HashMap<>();
params.put("title", "报表标题");
// 获取数据源
List<
ReportData> data = getData();
JRDataSource dataSource = new JRBeanCollectionDataSource(data);
// 编译J
asperReport模板文件
J
asperReport j
asperReport = J
asperCompileManag
er.compil
eReport(j
asperStream);
// 填充J
asperReport模板文件
J
asperPrint j
asperPrint = J
asperFillManag
er.fill
Report(j
asperReport, params, dataSource);
//
导出报表
response.setContentType("application/pdf");
response.setHead
er("Content-Disposition", "inline; filename=
report.pdf");
final OutputStream outputStream = response.getOutputStream();
J
asperExportManag
er.export
ReportToPdfStream(j
asperPrint, outputStream);
private List<
ReportData> getData() {
// 获取数据源
// ...
4. 编写J
asperReport模板文件
在resources目录下创建
reports目录,并在该目录下创建
report.jrxml文件,编写J
asperReport模板文件。
5. 运行程序
运行程序,访问http://localhost:8080/
report,即可生成报表并在浏览器中显示。