报表是为了数据的收集与展示,百科上说报表是表格、图表等格式展示数据。自己工作后陆续接触了两三种报表,分别是SpreadJs、Aspose和帆软FineReport,这里回顾下报表相关的知识,方便备查。
第一种、SpreadJs
第一个接触的报表,SpreadJs 是一款基于 HTML5 的纯 JavaScript 电子表格和网格功能控件,可嵌入任何操作系统,满足 .NET、Java等语言。
简单的说,SpreadJs 类似于微软的 excel 软件,对每个单元格可设置样式、更改自提,添加边框等。官网地址
本地绘制完成后保存为 ssjson 格式的文件,可进行数据的绑定。
spreadjs 数据绑定是通过读取配置表和数据表来实现,配置表中存放行列的信息。
本地编译器设置保存后,自动会将样式写入了ssjson文件中,如下图所示。
第二种、Aspose
Aspose是对office办公软件,如word、excel等操作,支持.net 和 Java,绑定数据关系,即可展示数据。
1)使用 world
world 可通过 域 (插入-文档部件-域)来绑定。主要包含模板和对应配置的xml文件,下图是定义的模板文件。域的样式如 <<>>
对应的xml文件存放查询数据的SQL,程序读取数据厚,生成并显示在新的文档中。
<?xml version="1.0" encoding="utf-8"?>
<document fileName="${date}">
<template >
<datasource name="dd">
<querysql name="md" desc="人员信息">
<![CDATA[
SELECT
name,
sex,
age
FROM
user
]]>
</querysql>
</datasource>
</template>
<setting>
</setting>
</document>
2)使用excel
excel 可通过 & 符号绑定字段,其中BD代表数据域,其后代码的是自定义的字段名称。
代码实现
//定义数据 list
List<Map<String, Object>> depList = new ArrayList<Map<String, Object>>();
//定义map 存放数据
Map<String, Object> depMap = new HashMap<String, Object>();
WorkbookDesigner designer = new WorkbookDesigner();
designer.setWorkbook(workbook);
String departInfo = “”;
// departInfo 表示字段对应的内容,BD 表示自定义的名称
depMap.put("BD", departInfo);
// 将map放到list中
depList.add(depMap);
//绑定数据源
designer.setDataSource("BD", new HashMapDataTable(depList));
// 一定要有以下代码
designer.process(true);
第三种、帆软FineReport
FineReport是帆软公司的企业级的报表,支持连接数据库,试试查询和展示数据。官网下载地址
数据绑定区域。新建数据源,在SQL区域添加查询的SQL。
主要页面
最后说几句
报表是为了统计或者显示数据服务,以上三种报表都是要购买才能使用,附带的功能比较强大,使用到的都是简单的功能,以后有机会还要深入的去了解和学习。