首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >再见Excel!最强国产开源在线表格Luckysheet走红GitHub

再见Excel!最强国产开源在线表格Luckysheet走红GitHub

作者头像
王小婷
修改于 2020-10-26 04:11:52
修改于 2020-10-26 04:11:52
2.9K00
代码可运行
举报
文章被收录于专栏:编程微刊编程微刊
运行总次数:0
代码可运行

开源最前线(ID:OpenSourceTop) 猿妹整编 项目地址:https://github.com/mengshukeji/Luckysheet

目前比较流行的办公应用主要有Excel、WPS、石墨文档等等,今天,猿妹要和大家推荐一款功能强大、配置简单、完全开源的用纯JavaScript编写的前端表格库,对它的评价只有【用它!】

Luckysheet具备了大部分Excel中的常用功能,比如文字与单元格的样式调整与公式的使用等。除此之外还提供了独有的复制时转换格式(比如 json 等)以及其他格式的数据导入导出等,可以说Excel具备的常用功能它也都有了。

此外,因为Luckysheet采用纯JavaScript编写,因此它可以嵌入到任何前端项目或应用程序中,便于实现集成和自动化。不过在图表方面现在只支持了常用的ECharts,其他图表框架需要等待以后陆续支持。

目前,Luckysheet已经在GitHub上标星3.9K,累计分支292(GitHub地址:https://github.com/mengshukeji/Luckysheet/blob/master/README-zh.md

整体架构

首先我们一起来看看Luckysheet的格式,一个完整的Luckysheet表格文件的数据格式为:luckysheetfile,一个表格文件包含若干个sheet文件,对应excel的sheet0、sheet1等。

一个Luckysheet文件的示例如下,该表格包含3个sheet:luckysheetfile = [ {sheet1设置}, {sheet2设置}, {sheet3设置} ] 相当于excel的3个sheet

文件中的一个sheet的数据luckysheetfile[0]的结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "name": "Cell", //工作表名称
    "color": "", //工作表颜色
    "index": "0", //工作表索引
    "status": "1", //激活状态
    "order": "0", //工作表的顺序
    "hide": 0,//是否隐藏
    "row": 36, //行数
    "column": 18, //列数
    "config": {
        "merge":{}, //合并单元格
        "rowlen":{}, //表格行高
        "columnlen":{}, //表格列宽
        "rowhidden":{}, //隐藏行
        "colhidden":{}, //隐藏列
        "borderInfo":{}, //边框
    },
    "celldata": [], //初始化使用的单元格数据
    "data": [], //更新和存储使用的单元格数据
    "scrollLeft": 0, //左右滚动条位置
    "scrollTop": 315, //上下滚动条位置
    "luckysheet_select_save": [], //选中的区域
    "luckysheet_conditionformat_save": {},//条件格式
    "calcChain": [],//公式链
    "isPivotTable":false,//是否数据透视表
    "pivotTable":{},//数据透视表设置
    "filter_select": {},//筛选范围
    "filter": null,//筛选配置
    "luckysheet_alternateformat_save": [], //交替颜色
    "luckysheet_alternateformat_save_modelCustom": [], //自定义交替颜色    
    "freezen": {}, //冻结行列
    "chart": [], //图表配置
    "visibledatarow": [], //所有行的位置
    "visibledatacolumn": [], //所有列的位置
    "ch_width": 2322, //工作表区域的宽度
    "rh_height": 949, //工作表区域的高度
    "load": "1", //已加载过此sheet的标识
}

在chrome的console中查看 luckysheet.getluckysheetfile() 可以看到完整设置 [{shee1}, {sheet2}, {sheet3}]

使用方法

第一步,引入依赖,有2种方式:

CDN

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/css/pluginsCss.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/plugins.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/css/luckysheet.css' />
<script src="https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/js/plugin.js"></script>
<script src="https://cdn.jsdelivr.net/npm/luckysheet/dist/luckysheet.umd.js"></script>

注意,https://cdn.jsdelivr.net/npm/luckysheet/dist/luckysheet.umd.js这个路径会拉取到最新的luckysheet代码,想要指定luckysheet版本,请在luckysheet后面加上版本号,如:https://cdn.jsdelivr.net/npm/luckysheet@2.0.0/dist/luckysheet.umd.js

如果不方便访问 jsdelivr.net,还可以采用本地方式引入

本地引入

npm run build后dist文件夹下的所有文件复制到项目目录,然后通过相对路径引入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link rel='stylesheet' href='./plugins/css/pluginsCss.css' />
<link rel='stylesheet' href='./plugins/plugins.css' />
<link rel='stylesheet' href='./css/luckysheet.css' />
<script src="./plugins/js/plugin.js"></script>
<script src="./luckysheet.umd.js"></script>

第二步,指定一个表格容器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="luckysheet" style="margin:0px;padding:0px;position:absolute;width:100%;height:100%;left: 0px;top: 0px;"></div>

第三步,创建表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    $(function () {
        //配置项
        var options = {
            container: 'luckysheet' //luckysheet为容器id
        }
        luckysheet.create(options)
    })
</script>

其实LuckysheetDocs的使用方式和Excel差别并不大,就连快捷键也是一样的:

最后附上在线DEMO体验:

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
最强国产开源电子表格-Luckysheet,强势登顶Github trending第一名!
现在web技术蓬勃发展,办公应用特别是excel都搬到了线上,比较流行的有腾讯文档,金山文档,石墨文档,google doc,属于企业服务。但是小型企业或者团队,如果想自己搭建一套在线表格系统呢?有没有开源的方案?
前端开发博客
2020/11/05
3.3K0
最强国产开源电子表格-Luckysheet,强势登顶Github trending第一名!
使用 Luckysheet 可实现 Web 的 Excel
工作中会遇到excel的导入和导出,换个角度看,假如有个 web 版本的excel ,且能上传现有的,修改编辑后再下载也是个不错的方案。 Luckysheet 是实现 web版Excel的一个优秀的框架。
张云飞Vir
2023/05/01
2K1
使用 Luckysheet 可实现 Web 的 Excel
在浏览器中操作 Excel,这款完全开源的在线表格推荐给你!
Excel 作为办公软件中使用最频繁的产品之一,是我们办公活动中必不可缺的一环。如果我们的系统中能够集成 Excel,相比会是我们一大亮点。
永恒君
2022/12/07
4.8K0
在浏览器中操作 Excel,这款完全开源的在线表格推荐给你!
实用!Excel在线网页版表格Luckysheet源码
前端小伙伴们,随着前端页面的日益强大 起来,不知道你是不是还在为开发一款在线版的Excel,在线ppt等发愁,因为这并不是一件很容易的事情,恰好有遇到这种业务需求的时候,那就来看一下这一个特别适用的在线网页版表格Luckysheet源码吧。
王小婷
2020/10/30
4.2K0
实用!Excel在线网页版表格Luckysheet源码
基于luckysheet实现在线电子表格和Excel在线预览
本文基于luckysheet实现在线的电子表格,并基于luckyexcel实现excel文件的导入和在线预览。
牛老师讲GIS
2024/12/30
1.1K0
基于luckysheet实现在线电子表格和Excel在线预览
Java注册登录及邮箱发送账号激活(主要技术栈SpringBoot,MyBatis)
这里我们直接使用 Spring Initializr 初始化 Spring Boot 项目
秋名山码神
2022/12/20
1.8K0
Java注册登录及邮箱发送账号激活(主要技术栈SpringBoot,MyBatis)
居然可以用 js 写 PPT?
用powerpoint或者keynote写演示文稿,对于代码、数学公式等的支持一直是个痛点。而且对于前端同学来说,一身的css功力用不上也是个痛点。对于使用markdown来写文档的同学来说,将文档转成ppt需要重新排版也是件重复性的工作量。
winty
2021/08/24
9.9K0
居然可以用 js 写 PPT?
Aplayer搭配MetingJS音乐插件的使用
Metingjs官网文档:https://github.com/metowolf/MetingJS
小颜同学
2023/08/24
9440
按需调用KaTeX渲染数学公式
某些Typecho主题没有添加对于LaTeX数学公式的支持,在这里给出几种手动添加的方法。其他博客如WP,Hexo同理也可使用。
蒟蒻
2023/11/16
6950
Aplayer+Metingjs音乐插件的使用
Aplayer是一个功能强大的HTML5音乐播放器,Metingjs基于Aplayer插件封装好的插件,开箱即用。
用户7162790
2022/03/23
1.1K0
Github 博客评论插件:Gitalk/gitment 集成
为了给博客加个第三方评论插件,首先选择了 github 开源项目 Gitment,然后种种原因原作者不再更新服务器api跨域转发失败;所以 Gitment 暂时不能用
2Broear
2024/03/12
1990
Bootstrap入门
Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 [1] 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。
Qwe7
2022/06/01
5400
vue双向绑定数组和对象有什么区别_后端接收前端json数据
众所周知,vue中v-model 会忽略所有表单元素的 value、checked、selected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。
全栈程序员站长
2022/10/05
1.4K0
vue双向绑定数组和对象有什么区别_后端接收前端json数据
网站通过代码引入Aplayer音乐播放器,无需插件
前几篇文章写了WordPress通过Hermit X插件引入网易云等音乐,但在我实际使用中发现了一些小bug已经影响到了深白站的日常使用,所以不得不放弃通过插件引入的方法。这里推荐直接用插件引入,毕竟方便省力,具体可以看我上上篇文章。
深白鸭
2023/02/22
6.6K6
网站通过代码引入Aplayer音乐播放器,无需插件
sao气十足的网页特效,让你的网页“动”起来
不知道大家在浏览网站和博客的时候有没有见到过非常有意思的页面特效呢?今天大师兄就带给大家几个有趣的特效,而且不用写代码,引入就能使用
程序员老鱼
2022/12/02
8410
添加全站 APlayer 播放器
之前 @狗子 在群里秀他的 Aplayer,还 post 了博文。然后我一看,哇!这就是我想要的!
惶心
2018/07/08
4.3K1
添加全站 APlayer 播放器
完美:C# Blazor中显示Markdown并添加代码高亮
昨天发了一篇介绍这个库:C# Blazor中显示Markdown文件,介绍怎么在Blazor中显示Markdown内容的文章,文章内的代码是没有高亮的,思来相去,还是要做好,于是百度到这篇文章.NET C# Blazor 服务端渲染Markdown,现在渲染效果如下:
沙漠尽头的狼
2022/03/26
1.9K0
完美:C# Blazor中显示Markdown并添加代码高亮
家乡主题网页设计代码 旅游主题网页设计 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有运用,CSS的代码量也很足、很细致,使用hover来完成过渡效果、鼠标滑过效果等,使用表格、表单补充模块,为方便新手学习页面中没有使用js有需要的可以自行添加。 <font color='#b44846' size='4px'> ❤</font> 【作者主页——🔥获取更多优质
IT司马青衫
2022/08/18
6.1K0
家乡主题网页设计代码 旅游主题网页设计 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
样式模板快捷键设置
导入后更具提示选择对应的class改变他的类,如果他每提示比如图标你可以F12里面看图标的源码
小小咸鱼YwY
2019/09/11
8670
添加嘉然live2d作为博客看板娘并本地化
效果:https://www.bilibili.com/video/av375230316
MashiroT
2022/10/28
8500
推荐阅读
相关推荐
最强国产开源电子表格-Luckysheet,强势登顶Github trending第一名!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验