逸飞开源推出创意、新颖、有趣、实用的免费开源应用、系统、软件、硬件和技术。 它是一个探索、发现、分享、使用和互动的开源技术社区平台。 旨在塑造一个充满活力的开源社区,构建全新的开源生态系统!
1.开源项目介绍
CellReport 是一个以生成和运行复杂统计报告为核心目的的工具。 您可以使用数据库、excel文件、api服务、现有报表等作为数据源,通过外部采集功能对数据进行组织,最终以类似excel的界面设计呈现结果。
CellReport的初衷是为了解决日常快速生成统计报告的需求。 报表制作者在总结了市面上的各种报表软件并结合集合运算的思想后,放弃了使用存储过程处理数据的方法,转而专注于每一类指标的处理。 然后在报表设计界面中,通过设置的功能来组织数据,这极大的方便了报表的制作和维护。
2. 开源合约
使用 Apache-2.0 开源合约
3. 部分界面显示示例
4. 功能概述
CellReport是一款以复杂的中国式报表为核心用途的制作和执行工具。 支持数据标牌和大屏幕制作。 您可以使用数据库、excel文件、api服务、现有报表等作为数据源,通过外部采集功能对数据进行组织,最终以类似excel的界面设计呈现结果。
主要特点: 主要特点:高效、灵活
内部中心是专为报表设计的类JS语言,帮助您以最少的配置专注于报表开发。
Net6驱动高性能
享受Net6的高效运行,占用显存极少(约300M),运行各种复杂的中式报表。
中国式报告
专为长期制作报表的人群而设计,提供基于集合运算的多数据集支持elementui展示动态表格,实现高效、快速的报表制作。
多成分解释
基于dashboard的单页多组件解读,预设了30多个定制用于显示数据的组件(echart图表、avue数据高亮等)。
自由扩展
报表引擎可以添加自定义功能,后端可以定制自定义解释组件,可以通过外部语言自由扩展认证和权限访问。
通用数据源
数据源支持各种.net支持的数据库、excel文件、api服务、本软件生成的报表以及其他报表软件(如reportingservice等)的报表
5、技术选型及技术实施
后端设计师采用基于vue、luckysheet、echarts等后端技术的网页格式。 前端报表引擎核心是基于netcore6实现的。
它是如何工作的?
报表运行时,首先会将所有数据集的数据以并行的形式抓取到运行环境中,然后根据报表设计中预定义的公式对数据进行合并和计算。 最终的数据会使用json的方式传递到最终的解释页面。 后端页面根据json结果呈现最终的显示。
报表运行环境有一个外部类似JS的语言环境,所有的操作都是基于这个语言。 一般做报表,我们只需要记住10个左右的函数和+-*/,就足够我们做复杂的统计报表了。
运行环境提供了很多可以拦截和访问自定义控件的地方,比如报表运行前的一般检测、控制数据集中的数据是否回传到后端等。后端解释可以动态插入自定义css和js。
后端基于vue,通过template-compiler模板编译器,可以自由控制echart、数据高亮等组件的显示风格。
前端运行的基础环境是net6。 内存效率极高,只需要300M左右的内存。 内部大量异步任务和延迟返回技术,执行效率与原生手写数据处理程序基本相同。
我们可以通过实现FunctionUnit套接字来实现系统没有预定义的功能elementui展示动态表格,也可以使用外部语言来实现一些简单的功能扩展。
需要安装才能运行和配置的软件
假设解压安装到d:cellReport。
报表组管理
默认情况下,已经有一个默认组和一个示例组。 首次登录时,选择报表组管理,配置基本报表存储路径和数据库链接。 根据不同的应用可以构建不同的组。 助理经理可以添加到报表组,多个用户之间用中文逗号分隔。
目前预装的数据库驱动有:sqlServer、sqlite、Mysql、Pgsql、odbc。 其他驱动需要您自行下载安装。
sql server 连接串格式
Data Source=ip地址;Initial Catalog=数据库名字;Persist Security Info=True;User ID=用户;Password=口令;Min Pool Size=1;Max Pool Size=50;Connect Timeout=15000;Application Name=报表连接
oracle 连接串 格式
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ip地址)(PORT=端口))(CONNECT_DATA=(SERVER = SERVER名字)(SERVICE_NAME = 数据库)));User Id=用户;Password=口令;
sqlite 连接串 格式
Data Source=E:my_app报表源码_2020a_new_libtest.db
MySql 连接串 格式
Database=dbname;Data Source=x.x.x.x;Port=3306;User Id=xxx;Password=****;Charset=utf8;TreatTinyAsBoolean=false;
pgsql 连接串 格式
server=ip地址;port=5432;uid=用户;pwd=口令;database=数据库;Pooling=true;
配置完成后,按F5刷新页面,点击报表目录。 正常情况下,您应该能够看到所有的测试报告。
这里也感谢本软件使用的第三方软件。
后端:luckysheet、vue、element-ui、avuejs 前端:antlr3
制作统计报告往往不是只用一条 SQL 语句就能完成的事情:
提示:cellReport中建设性地增加了关于集合的计算功能,可以根据指定条件对各个数据集进行分组合并,从而大大降低了开发统计报表的难度。 本报表软件的集合运算包括:集合的并集、交集、加法。 最常用的是求集合的并集。
6.源码地址
访问一飞开源: