1. 概述
1.1 版本
报表服务器版本 | 插件版本 | 功能变更 |
11.0 | V1.0.0 | - |
11.0.10 | V1.1.16 | 1)插件名称变更为:大数据集导出插件 2)支持导出为 CSV 类型文件 |
1.2 应用场景
大批量数据导出的时候,会对服务器、网络传输、数据库造成一定的压力。为了防止这样的风险,FineReport 推出「大数据集导出」的功能,可直接根据数据集结果进行导出。
1.3 功能描述
「大数据集导出」是一种占用资源少且速度快的 Excel 导出方式,无需前台数据展示即可进行后台流式导出。
通过「大数据集导出 Excel」插件,用户可以自定义大数据集导出事件,跳过报表计算直接取数导出。
实现原理如下:
1)使用 SXSSFWorkbook 流式行导出,速度快。
2)使用生产者消费者模式,一个线程用于取数,把数据行存在队列中,另一线程读取行导出。
注:FineReport 设计器支持使用 JavaScript 代码实现大数据集导出 Excel。
1)此功能只支持关系型数据库。且 SQL Server 数据库需要把游标设置为服务器游标。
2)此功能无法直接导出 date/datetime 型空值,需要在 JDBC 数据连接的 URL 后添加 zeroDateTimeBehavior=convertToNull 参数,如果是 Oracle 数据无需加参数。
3)如果模板有多个参数,且导出时需要设置参数,那么这些参数都要设置,不要只设置其中几个,否则会导致数据无法导出。
4)建议导出的数据量不超过「1000W 行 * 20 列」,数据量超大可能会导致仅导出部分数据。
5)导出的 Excel 是通过 SQL 语句直接从数据库中获取的数据,并非报表中的数据,因此报表中设置的数据格式等无法被导出。
6)此功能不支持移动端。
7)插件版本在 V1.1.10 及之后时,导出超过 5s 时显示进度条。
8)支持存储过程,但是必须按下图的方式调用:
2. 插件介绍
2.1 插件简介
插件安装后,在控件事件/模板页面事件中新增「大数据集导出」事件类型,如下图所示:
具体设置和功能如下表所示:
设置项 | 简介 | 注意事项 |
导出文件名 | 非必填项 可自定义导出的Excel文件名称。 不设置则默认为「模板名-数据集名称」 文件名支持使用参数,示例:=$参数 注:这个等于号不是公式,暂不支持参数加文本的写法,也就是想要文件名带参数,文件名就只能是参数。 | 文件名中含有转义字符/时,浏览器下载文件会转义成_ 使用参数定义文件名时,这个参数必须是参数面板绑定好控件的,否则无效 |
导出格式 | 默认为 Excel 勾选 CSV 后,可选择编码方式为 UTF-8 或 GBK | - |
数据集 | 必选项 用于选择需要进行导出的数据集 可选范围包括服务器数据集和模板数据集 | - |
参数 | 非必选项 用于定义传入数据集的参数,不填则传递空值 点击右上角「刷新」按钮,即可抽取出所选数据集中的所有参数和默认值 参数值支持的类型包括:字符串、整型、双精度型、日期、布尔型、公式 | 参数赋值独立,不会影响到模板中同名参数的设置 参数选择类型为单元格时,需支持获取到单元格扩展后结果 |
导出数据列 | 非必选,用于选择需要导出的数据列,可多选,如果不选默认导出所有字段 添加字段:点击「智能添加字段」,即可抽取出所选数据集中的所有字段。用户可对字段进行重命名或移除部分字段 移除字段:按住Ctrl键,可选中多个已添加的字段,点击「移除字段」并确认,即可移除已添加的字段 | 字段重命名后,导出的Excel中,列名为重命名的结果 重复添加某个字段,可选择是否覆盖原先添加的字段 导出列名中含有转义字符/ 时,设置导出的数据列不生效,会将所有数据列导出 |
总结
帆软FineReport拥有国内数据行业最好的社区论坛,99%的问题都可以在帮助文档中查询到解决方案,行业案例、产品教学视频和帆软报表工具更是必备品;同时技术支持团队、电话热线、营销QQ随时待命。用户界面更容易上手,都提供官方技术支持、论坛、交流小组等,可以帮助用户快速解决问题你的可视化图表与应用需求。