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

在线预览/编辑excel工具LuckySheet(LuckyExcel)导入excel,含非xlsx处理 【代码】在线预览/编辑excel工具LuckySheet(LuckyExcel)导入excel,含非xlsx处理。 阅读详情

来源:Python数据科学

目前比较流行的办公应用主要有Excel、WPS、石墨文档等等。

今天,要和大家推荐一款功能强大、配置简单、完全开源的用纯 JavaScript 编写的前端表格库!

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

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

目前,Luckysheet已经在GitHub上标星4.2K,累计分支292。

GitHub地址:https://github.com/mengshukeji/Luckysheet/blob/master/README-zh.md

在线文档:https://mengshukeji.gitee.io/luckysheetdocs/zh/

整体架构

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

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

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

{
    "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

<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文件夹下的所有文件复制到项目目录,然后通过相对路径引入。

<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>

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

<div id="luckysheet" style="margin:0px;padding:0px;position:absolute;width:100%;height:100%;left: 0px;top: 0px;"></div>

第三步,创建表格

<script>
    $(function () {
        //配置项
        var options = {
            container: 'luckysheet' //luckysheet为容器id
        }
        luckysheet.create(options)
    })
</script>

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

DEMO 体验

vue + Luckysheet 实现在线Excel表格操作 阅读详情

相关推荐

项目想要在页面上像excel一样编辑文件,于是我基于luckysheet封装了一个插件

写这个主要是因为实现这些功能需要用到挺多插件的,就有了能不能装一个然后所有写好的功能就能用了的想法。目前这个插件用于vue,但是想法局限了。由于我加了一个vue组件一起封装,这就导致只能用在vue中,其实完全可以将js进行封装,因为这些js与框架无关,这样的话以后若是想在不同框架中使用也是没有问题的。后续我会持续优化的,电子表格后续可以玩的花样有很多,我想随着我们项目版本的迭代,这个插件也会添加更多的功能,让我们拭目以待。大家有什么建议可以在评论区留言,欢迎大家可以一起来探讨。

qq_36523196的博客 3196

Luckysheet 实现excel多人在线协同编辑

Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源,本文将重点讲述协同的实现方案,支持在线多人协作,编辑在线 excel 文档,支持文档导入、导出等其他功能

~朴:shu的博客 3万+

Redis Lua引擎UAF漏洞CVE-2025-49844深度剖析与复现实践

内存安全是软件系统稳定性的基石,其核心原理在于确保程序对内存的访问始终处于合法、受控的状态。在C/C++等手动管理内存的语言中,Use-After-Free(释放后使用)是一种典型的高危内存安全漏洞,它源于已释放的内存区域仍被程序指针引用,导致数据混乱或程序崩溃。这类漏洞的技术价值在于其往往能突破高级语言的安全边界,直接威胁进程本身,危害等级极高,常见于数据库、浏览器等核心基础设施。在Redis这样的高性能内存数据库中,其内置的Lua脚本引擎为复杂操作提供了强大支持,但同时也引入了沙箱环境下的复杂内存对象生

weixin_42530732的博客 365

Vue-Luckysheet的使用方法

Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。 配置文档 · API · 教程:快速上手 | Luckysheet文档 现将分享我在使用该组件过程中遇到的问题及解决方法。 Vue中定义Luckysheet组件:组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型、独立和通常可复用的组件构建大型应用,因此,先定义好可重复使用的Luckysheet组件。代码如下: <template> <div class="she

Lyy1991Wdl的专栏 2万+

保姆级教程:用MATLAB复现格拉斯哥大学FMCW雷达数据集多普勒谱(附完整代码与避坑指南)

本文提供了一份详细的MATLAB教程,指导如何复现格拉斯哥大学FMCW雷达数据集的多普勒谱分析。从环境准备、数据获取到距离压缩、MTI滤波、时频分析(STFT)以及结果后处理,涵盖了完整流程,并附有优化代码和避坑指南,特别适合雷达信号处理研究者和工程师。

weixin_28720767的博客 117

告别PlatformIO!用Arduino IDE搞定ESP32上的micro-ROS 2.0.5(Humble版)

本文详细介绍了如何从PlatformIO迁移到Arduino IDE以支持ESP32上的micro-ROS 2.0.5(Humble版)。内容涵盖环境配置、项目转换、常见问题解决及高级优化技巧,帮助开发者顺利过渡并充分利用Arduino IDE的官方支持优势。

weixin_33709590的博客 378

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

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

机器学习算法与Python学习 7074

【PostgreSQL教程】PostgreSQL 高级篇之子查询

子查询也可称为内部查询、嵌套查询,指的是在 PostgreSQL 查询中的 WHERE 子句中嵌入查询语句。一个 SELECT 语句的查询结果能够作为另一个语句的输入值。子查询可以与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,并可使用运算符如 =、、>=、

No8g攻城狮的博客 1206

推荐7款国产的在线HTML编辑器

<br /><br />在线HTML编辑器或者是基于浏览器的所见即所得的HTML编辑器广泛用于各种类型网站的文章发布、论坛发贴等功能。例如在oschina网站上发帖、写博客、提交新闻、添加开源软件等处都会用到这种编辑器。<br />目前有非常多非常优秀的在线HTML编辑器,而且这些编辑器大多数都是开源的,而国产的编辑器也已成熟,雄踞一方,本文罗列一些非常优秀的出自国内程序员之手的HTML编辑器,如有不足请大家补充,请看具体列表(排名不分先后顺序):<br />KindEditor<br />KindEdit

ddxkjddx的专栏 1万+

DeepSeek 赋能太空探索:从轨道优化到星际开拓的 AI 革命

随着人工智能技术蓬勃发展,DeepSeek 在太空探索领域展现出巨大应用潜力。本文深入剖析 DeepSeek 技术核心,包括低功耗运算、开源生态等优势,阐述其与传统航天技术的差异。从航天器自主控制、深空探测、载人航天等关键环节,结合实时轨道调整、故障诊断修复等实例,揭示 DeepSeek 对航天任务效率与安全性的提升作用。同时探讨其应用面临的太空环境适应、伦理安全等挑战,展望技术演进方向及与前沿技术融合前景,展现 DeepSeek 为人类太空探索带来的变革与深远意义。

邓邓子的博客 2261

手把手教你玩转服务器芯片架构​专栏--​​3.5 实战案例:用SystemC搭建一个多核服务器芯片的NoC模型(含流量分配与延迟仿真)​

通过SystemC搭建多核NoC模型,可深入验证流量分配策略与延迟特性。实际工程中需结合FPGA原型验证(如Xilinx Alveo)进行时序收敛分析,并通过参数化设计适配不同服务器芯片需求。

MHD0815的博客 3047

ERD Online 4.0.0新版本震撼来袭,超强国产免费在线数据建模系统

ERD Online 4.0.0新版本震撼来袭,超强国产免费在线建模系统

qq_30054961的博客 1万+

【100%通过率】华为od机试C卷【贪吃的猴子】Java&Go 实现

一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者未尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。第一次获取香蕉为行的开头,第二次获取为行的末尾,因此最终根数为4+3 =7。全部获取所有的香蕉,因此最终根数为1+2+3 = 6。第二行为数组numbers的值每个数字通过空格分开。1:简单题目,两个指针分别指向头尾,逐个对比即可。第一行为数组numbers的长度。第三行输入为N,表示获取的次数。

MISAYAONE的博客 1439

好用的技术网站

极客学院 http://www.w3school.com.cn/

hzp666的博客 1万+

Xilinx FPGA ICAP原语实现多重配置

众所周知,常见的FPGA通常为SRAM结构,固件程序一般存放在外置的串行Flash中,比如SPI Flash,M25P16或N25Q128等。 FPGA启动时,一般先从SPI起始地址开始加载数据到内部的SRAM,加载完成、校验通过则会直接运行。 那么有没有可能在SPI Flash中存放两个或多个FPGA固件呢?

whik1194的博客 4614

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Luckysheet 实现 excel 多人在线协同编辑(全功能实现增强版)

单独将Luckysheet 抽离成新项目,争取实现完整的协同功能。,使用 sequelize 作为ORM数据库连接,方便大家迁移,同时,也做了兼容,没有数据库的用户,。同时,为了规范代码,,没有使用任何前端框架,实现最简单简介的luckysheet协同增强版。

~朴:shu的博客 8130

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【LuckySheet】VUE3项目中通过LuckySheet实现Excel在线编辑

在实现Excel文件导入时,领导要求实现在前端导入文件后,不调用后端的接口,而是直接显示excel文件的内容,等待用户修改完以后,再调用后端接口进行文件的提交。在这种应用场景下,使用了LuckySheet进行改功能的实现。附上。

VT_馒头的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 火了!16岁高中生做的 Python 3.9 八大新特性图
下一篇: CV学习笔记:入坑必备
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值