GithubHelp home page GithubHelp logo

noneday / cellreport Goto Github PK

View Code? Open in Web Editor NEW
387.0 8.0 95.0 27.6 MB

CellReport 是一个netcore实现的、以复杂统计报表为核心目标的制作、运行工具。支持数据看板、大屏制作。你可以使用数据库、excel文件、api服务、已有报表等为数据源,通过内置的集合函数组织数据,以类excel界面设计最终呈现结果。

License: Apache License 2.0

Crystal 4.46% C# 4.40% HTML 12.92% JavaScript 41.27% Shell 0.01% CSS 16.35% SCSS 2.73% Less 1.75% Vue 16.12% Dockerfile 0.01%
netcore reporting-tool vue dotnet asp-net-mvc report opensource csharp reporting dotnet-core

cellreport's Introduction

介绍

CellReport 是一个以 复杂统计报表 为核心目标的制作、运行工具。你可以使用数据库、excel文件、api服务、已有报表等为数据源,通过内置的集合函数组织数据,以类excel界面设计最终呈现结果。

CellReport 诞生的初衷是为了解决日常快速制作统计报表的需要。在总结了市面上各种报表软件的前提下,结合集合运算的**,使得报表制作人员抛弃使用存储过程加工数据的方式,专注于每一类指标的加工,然后在报表设计界面,通过集合函数组织数据,极大得方便了报表的制作和维护。

源码 文档 发行版
Github Github在线文档 github下载
Gitee Gitee在线文档 gitee下载

这个链接是B站教学视频,关注可以及时接收最新教学

演示地址 测试用户/密码: test/123456

主要特点:

  • 支持所有常规的清单、分组、交叉。
  • 多源、分片
  • 多数据集的集合运算
  • 单元格扩展、引用
  • 内置类js语言引擎 可以使你自己的程序具有自定义脚本功能
  • 丰富的函数定义
  • 可自定义扩展函数
  • 页面元素丰富。预定义有报表组件、echart组件、数据展现组件等
  • 灵活的报表元素间的数据引用,局部报表刷新设置方便
  • 组件报表引用、以及对其他报表软件制作的报表引用(专业版提供)

部分例图

输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

输入图片说明

技术实现

前端设计器采用基于vue、luckysheet、echarts等前端技术实现的网页方式 后端报表引擎核心基于netcore6 实现

它是如何工作的?

报表运行时,会首先以并行方式将所有数据集的数据取到运行环境,然后根据报表设计中预定义好的公式做数据的合并、运算,最终数据以json方式传给最终展现页面,前端页面根据json结果呈现最终展示。

报表运行环境内置了类js语言环境,所有运算都是以该语言为核心。通常制作报表,我们只需要记住10个左右的函数,以及+-*/ ,就足够我们制作复杂的统计报表了。

运行环境提供了很多可以拦截接入自定义控制的地方,如:报表运行前的通用检查、控制数据集的数据是否回传前端等。前端展现可以动态插入自定义css、js 。

前端是以vue 为基础,通过template-compiler模板编译器,可自由控制echart、数据展现等组件的显示样式。

后端运行的基础环境是net6。内存效率利用极高,仅需300M左右内存。内部大量异步任务和延迟返回等技术,执行效率基本和原生手写加工数据程序的运行效率相当。

我们可以通过实现FunctionUnit接口实现系统没有预定义的函数,也可以用内置语言实现一些简单的函数扩展。

需要安装的软件

  1. 下载安装NET6 SDK6 或 ASP.NET Core Runtime 6. Download .NET (Linux, macOS, and Windows)
  2. 下载安装redis(可选)。最好安装 https://github.com/MicrosoftArchive/redis/releases
  3. gitee下载release

运行和配置

假设解压安装到了d:\cellReport。

  1. 执行 start.bat
  2. 浏览器输入地址: http://127.0.0.1:5000
  3. 缺省用户名密码:admin/database!123 。管理员用户在appsetting.json中存有(最后面可以找到),可以自行修改。

报表组管理

缺省已经有了一个default组和example组。第一次登录,选报表组管理做基本的配置报表存放路径和数据库链接。可以根据不同的应用建立不同的组。报表组可以添加协助管理人员,多个用户中间用英文逗号分割。

当前预安装的数据库驱动程序有: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\报表源码_2020\a_new_lib\test.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;

达梦 连接串 格式
Server=ip地址:端口; UserId=用户; PWD=口令;

配置完毕后,按F5 刷新页面,点报表目录,正常的话,这是应该能看到所有的测试报表了

商业授权

CellReport使用Apache License 2.0 开源协议 如果您需要商用,请联系作者获取商业授权

报表交流qq群

①群已满 860056080 ②群 704904302

本软件使用到的的第三方软件,在此一并致谢

前端: luckysheet ,vue ,element-ui, avuejs 后端: antlr3

捐赠名单

感谢各位大佬支持!

宝宝书 71元
庄鹏 70元
补丁 66元
C罗  66.6元

cellreport's People

Contributors

noneday avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cellreport's Issues

Tab页删除异常

多sheet页清单报表,对其中一个或多个tab页进行删除操作时,会出现实际删除的tab页和计划删除的tab页对应不准确的问题。

举个例子:计划删除sheet4,并对其进行删除操作,删掉之后发现实际删的是sheet3,编辑页面没有sheet3了,只剩sheet1,2和sheet4
但是预览界面呈现的还是sheet3的内容,这种情况下如果想对sheet3的内容进行调整 就没办法实现,因为编辑界面没有sheet3了。

很怪异的问题,麻烦作者看一下,感谢~

怎么添加用户?

我看教程里是建议对接已有的用户管理系统,但是我想简单用下,如果在本地添加用户,实现多用户登录

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.