Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >再见Excel!最强国产开源在线表格Luckysheet走红GitHub

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

作者头像
王小婷
修改于 2020-10-23 02:19:12
修改于 2020-10-23 02:19:12
2.2K00
代码可运行
举报
文章被收录于专栏:编程微刊编程微刊
运行总次数: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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
3万字史诗级 Hive 性能调优(建议收藏)
Hive 作为大数据领域常用的数据仓库组件,在平时设计和查询的时候要特别注意效率 。影响 Hive 效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、Job或I/O过多、MapReduce 分配不合理等等。 对Hive 的调优既包含 Hive 的建表设计方面,对 HiveHQL 语句本身的优化,也包含 Hive 配置参数 和 底层引擎 MapReduce 方面的调整 。
肉眼品世界
2022/06/15
5.1K0
3万字史诗级 Hive 性能调优(建议收藏)
hive基础总结(面试常用)
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 Metastore (hive元数据) Hive将元数据存储在数据库中,比如mysql ,derby.Hive中的元数据包括表的名称,表的列和分区及其属性,表的数据所在的目录 Hive数据存储在HDFS,大部分的查询、计算由mapreduce完成 Hive数据仓库于数据库的异同 (1)由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言, 再无类似之处。 (2)数据存储位置。 hdfs raw local fs (3)数据格式。 分隔符 (4)数据更新。hive读多写少。Hive中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。 INSERT INTO … VALUES添加数据,使用UPDATE … SET修改数据 不支持的 HDFS 一次写入多次读取 (5) 执行。hive通过MapReduce来实现的 而数据库通常有自己的执行引擎。 (6)执行延迟。由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致Hive执行延迟高的因素是MapReduce框架 (7)可扩展性 (8)数据规模。 hive几种基本表类型:内部表、外部表、分区表、桶表 内部表(管理表)和外部表的区别: 创建表 外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径 内部表会把数据复制或剪切到表的目录下 删除表 外部表在删除表的时候只会删除表的元数据信息不会删除表数据 内部表删除时会将元数据信息和表数据同时删除 表类型一、管理表或内部表Table Type: MANAGED_TABLE
用户1217611
2019/05/25
8560
一文学完所有的Hive Sql(两万字最全详解)
lateral view用于和split、explode等UDTF一起使用的,能将一行数据拆分成多行数据,在此基础上可以对拆分的数据进行聚合,lateral view首先为原始表的每行调用UDTF,UDTF会把一行拆分成一行或者多行,lateral view在把结果组合,产生一个支持别名表的虚拟表。
五分钟学大数据
2021/04/02
3.2K0
拿美团offer,Hive基础篇(持续更新中)
Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL查询功能。
木野归郎
2020/06/15
5570
拿美团offer,Hive基础篇(持续更新中)
工作常用之Hive 调优【三】 Explain 查看执行计划及建表优化
create table bigtable(id bigint, t bigint, uid string, keyword string,
Maynor
2022/10/04
1.8K0
工作常用之Hive 调优【三】 Explain 查看执行计划及建表优化
五万字 | Hive知识体系保姆级教程
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
数据社
2021/08/27
2.2K0
五万字 | Hive知识体系保姆级教程
Hive基础操作
hive的常用操作,不是很全的那种 创建数据库 cearte database [if not exists] db.hive; 表的相关操作 -- 创建表 create table [if not exists] student( name string, age int, score int) row format delimited fileds terminated by '\t'; -- 创建子表——从表中提取出所需要的字段 create
俺也想起舞
2019/07/24
6190
Hive知识归纳——详解 hive 各个知识点
CREATE FUNCTION [db_name.] function_name AS class_name [USING JAR|FILE|ARCHIVE 'file_uri' [, JAR|FILE|ARCHIVE 'file_uri'] ];
solve
2019/10/30
2.1K0
Hive知识归纳——详解 hive 各个知识点
HIVE入门_2
用户1147754
2018/01/02
1.6K0
HIVE入门_2
Hadoop和spark基础使用
map的输入固定是LongWritable和Text,可理解为偏移量和String类型的数据。 核心:map的输出的key和value是reduce的输入的key和value
栖西
2023/10/17
3270
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
该文介绍了关于数据库连接池的知识点,包括概念、特点、配置方式、调优参数和常见问题。同时,文章还提供了如何正确配置和优化数据库连接池的相关建议,以帮助开发人员更好地掌握和应用该技术。
别先生
2018/01/02
3.7K0
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
史上超强最常用SQL语句大全
关于查询语句有很多,这里基础的不再介绍。主要介绍排序查询、聚合函数、模糊查询、分组查询、分页查询、内连接、外连接、子查询
全栈程序员站长
2022/07/01
5550
Hive 基本操作(创建数据库与创建数据库表)
修改数据库 可以使用alter database 命令来修改数据库的一些属性。但是数据库的元数据信息是不可更改的,包括数据库的名称以及数据库所在的位置
Maynor
2021/04/09
5.6K0
Hive的数据模型
在Hive中,表中的一个Partition对应表下的一个目录,所有的Partition的数据都存储在对应的目录中
ZHANGHAO
2018/12/16
1.2K0
Hive的数据模型
(超长文)Hive Sql基本操作
2.注释问题2.1 MySQL中的注释2.2 Hive中的注释3.乱码问题3.1 修改表字段注解和表注解3.2 修改分区字段注解3.3 修改索引注解3.4 修改metastore的连接URL4.数据库基本操作4.1 创建带属性的库4.2 显示数据库详情:4.3 查看正在使用哪个库4.4 查看数据库的详情语句5.删除数据库5.1 删除库原则5.2 删除不含表的数据库5.3 删除含表数据库6.切换库及创建表6.1 切换库6.2 创建表7.表详情及表操作7.1 表详情7.2 表操作8.分区8.1 查看分区8.2 添加分区8.3 修改分区8.4 删除分区
公众号guangcity
2019/09/20
3.8K0
(超长文)Hive Sql基本操作
HiveQL快速使用
--define可以定义用户变量 --hivevar可以定义用户遍历 --hiveconf使用key-value得到hive-site.xml配值的变量
Tim在路上
2020/08/04
7960
(四)Hive分区、分桶
CREATE TABLE IF NOT EXISTS salgrade2 ( GRADE int, LOSAL int, HISAL int ) partitioned by (day string) row format delimited fields terminated by '\t' location '/data/inner/ODS/01/salgrade2';
wolf
2020/09/18
1.2K0
Hive个人笔记总结
①保证环境变量中有JAVA_HOME ②基于HADOOP工作,保证环境变量中有HADOOP_HOME ③在环境变量中配置HIVE_HOME,默认hive在启动时,会读取HIVE_HOME/conf中的配置文件
Java架构师必看
2021/05/14
2.7K0
hive基本概念
用户1171305
2017/12/28
9370
最强最全面的Hive SQL开发指南,超四万字全面解析!
hive -S -e 'select table_cloum from table' -S,终端上的输出不会有mapreduce的进度,执行完毕,只会把查询结果输出到终端上。
五分钟学大数据
2021/12/02
8K0
最强最全面的Hive SQL开发指南,超四万字全面解析!
相关推荐
3万字史诗级 Hive 性能调优(建议收藏)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验