最近因为项目要求,需要在页面上添加一个在线编辑excel的功能,因此只能在网上找有没有直接用的插件,最后很幸运的是幸好找到了一个 ----luckysheet.

这个是从luckysheet官网上找的图片,先看下能用插件做那些效果。

  

  这个是中文官网地址:https://mengshukeji.gitee.io/LuckysheetDocs/zh/

  这个是vue3项目的github地址:https://github.com/dream-num/luckysheet-vue

  官方文档很详细,具体使用很简单,差不多跟Echarts 一样,配置数据结构,然后插件初始化即可。

  接下来介绍下这个插件的使用方法:

 使用步骤

  先说下我当前的开发环境:"vue": "^3.2.37",luckysheet:2.2.12

  1.依赖引入

    官方推荐了2种方法:1.使用CDN的方式引入在jsdelivr公共库的文件,2.把文件下载到本地,然后本地引入。

    本人推荐本地引入较好,一个是可以在离线环境下正常使用,另一个是在开发时期,突然发现插件不能使用,最后定位到jsdelivr公共库加载超时,还是保险本地引入较好。

    对应的css样式文件和js文件最好在最外层的index.html引入。

2. 指定表格容器

    指定一个带有id的容器,可以封装成组件调用

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

    然后根据文档添加配置项,最后初始化表格即可。

    

    整个结构跟配置echarts一样,需要什么功能或者什么样式,直接在 options 进行配置即可。接下来讲下常用的几个配置属性。

 功能配置

  配置项根据范围分为两种:1.表格插件的公共配置项 。2.单个sheet表单的配置项。大概结构如下。

const options = { // 公共配置项
container: 'luckysheet1', // luckysheet为容器id
lang: 'zh', // 设定表格语言
title:'', // 设定表格名称
forceCalculation:true,
index:'0',
status:'1',
order:'0',
hide:'0',
column:30, // 列数
row:50, // 行数
showtoolbar:true, // 工具栏
showinfobar:false, // 信息栏
showsheetbar:false, // 底部sheet页
sheetFormulaBar:false, // 是否显示公式栏
showsheetbarConfig:{},// 自定义底部sheet页
sheetRightClickConfig:{},//自定义底部sheet页右击菜单
showtoolbarConfig:{}, // 自定义配置工具栏
cellRightClickConfig:{}, // 右键配置
data:[ // 表格sheet的个数和配置项
{
"name":"Sheet1",
"defaultRowHeight":25
},
{
"name":"Sheet2",
"defaultRowHeight":25
}, ]
}
// 初始化表格
luckysheet.create(options)

  有关公共配置项和单个sheet的配置项、官方文档写的很详细,使用上很简单,就不再这太详细的介绍了。

表格数据的保存和初始化

  先介绍下luckysheet插件的数据是怎么使用的。

当插件初始化后,我们在表格内随意填入几个数字。

  然后在控制台内使用官方提供的方法看下插件里的数据。

  重点数据都在标出来的两个数组,其他大部分都是描述表格的基本配置。

  接下来打开这两个数组,看下里面的数据。

  对比一开始在表格内填写的数字和位置,很明显的看出 celldata 里存的是已经填写的单元格信息,包含每个单元格所在的行(r),列(c),以及填写的数据(v:m).

  而data里面则是用二维数组的方式记录已经使用的单元格信息,里面单元格数据跟 celldata 的类似。

  这就很明显了,如果想要在表格内初始化加载数据,或者是把数据保存到后台,只要处理数据即可。

  (注:如果有加自定义表格样式或者自定义插件配置,最好的方法是把通过 luckysheet.getAllSheets() 获取到的数据全部进行存储。然后通过optins.data 完成单个表格数据的初始化)

  另外有空的话,在扩展一个基于websocket实现的共同编辑文档,期待下一个文章吧。

 出现的问题

  在做表格数据的存储时,发现一个问题,如果在表格内输入完最后一个数字,在最后一个单元格在选中编辑的状态下,是无法通过luckysheet.getAllsheet()获取到这个单元格数据的,因此在上传数据之前,需要另外加一条命令。

luckysheet.exitEditMode(); // 退出编辑模式

  退出编辑模式,接下来就能获取到全部数据了。

Luckysheet:一个纯前端的excel在线表格的更多相关文章

  1. H5纯前端生成Excel表格

    H5纯前端生成Excel表格方法如下: <!DOCTYPE html> <html> <head> <title></title> < ...

  2. 基于纯前端类Excel表格控件实现在线损益表应用

    财务报表也称对外会计报表,是会计主体对外提供的反映企业或预算单位一定时期资金.利润状况的会计报表,由资产负债表.损益表.现金流量表或财务状况变动表.附表和附注构成.财务报表是财务报告的主要部分,不包括 ...

  3. vue 纯前端导出 excel 表格

    在开发后台管理系统的时候,很多地方都要用到导出excel 表格,比如将table中的数据导出到本地,那么实现这种需求往往有两种方案: 一.后端开发一个下载链接,前端将这个链接放到 a 标签的 href ...

  4. vue后台_纯前端实现excel导出/csv导出

    之前的文件下载功能一般是由前后端配合实现,由于项目需要,纯前端实现了一把excel的导出功能: 一.excel导出 1.安装依赖库 xlsx:这是一个功能强大的excel处理库,但是上手难度也很大,还 ...

  5. 一篇带你了解如何使用纯前端类Excel表格构建现金流量表

    现金流量表(Cash Flow Statement),是指反映企业在一定会计期间现金和现金等价物流入和流出的报表.现金流量表是企业财务报表的三个基本报告之一(另外两个是资产负债表和损益表). 为了全面 ...

  6. 纯前端导出Excel表格

    <html> <head> <p style="font-size: 20px;color: red;">使用a标签方式将json导出csv文件 ...

  7. 使用javascript纯前端导出excel

    前言(感谢技术的分享者) 参考博客地址 github地址 由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls.xlsx ...

  8. 葡萄城首席架构师:前端开发与Web表格控件技术解读

    讲师:Issam Elbaytam,葡萄城集团全球首席架构师(Chief Software Architect of GrapeCity Global).曾任 Data Dynamics.Inc 创始 ...

  9. 纯前端表格控件SpreadJS V12.1 隆重登场,专注易用性,提升用户体验

    ​ 一款优秀的开发工具,在更新迭代中,除了要满足不同场景的业务需求,也需不断优化已有功能,尤其是细节方面,要能为用户带来使用体验和开发效率的提升. 作为一款备受业界专家和开发者认可的纯前端类Excel ...

  10. Chrome 103支持使用本地字体,纯前端导出PDF优化

    在前端导出PDF,解决中文乱码一直是一个头疼的问题.要解决这个问题,需要将ttf等字体文件内容注册到页面PDF生成器中.但是之前网页是没有权限直接获取客户机器字体文件,这时就需要从服务器下载字体文件或 ...

随机推荐

  1. 2020-12-14:mysql中,可重复读是怎么实现的?

    福哥答案2020-12-14: [答案来自此链接:](http://bbs.xiangxueketang.cn/question/735) 快照读:就是select.MVCC.select * fro ...

  2. 2022-02-27:k8s安装yapi,yaml如何写?

    2022-02-27:k8s安装yapi,yaml如何写? 答案2022-02-27: yaml如下: apiVersion: apps/v1 kind: Deployment metadata: l ...

  3. Django接入drf_yasg2 API接口文档-完整操作(包含错误处理)

    drf_yasg2的简介: drf-yasg是Django RestFramework的一个扩展,使⽤drf_yasg2下载⾃动⽣成的api⽂档的json或yaml⽂件配置项. drf_yasg2的安 ...

  4. vue全家桶进阶之路33:Vue3 计算属性computed

    在Vue3中,计算属性可以使用computed函数来定义. computed函数接受两个参数:第一个参数是一个函数,该函数返回计算属性的值:第二个参数是一个可选的配置对象,可以包含getter和set ...

  5. 【GiraKoo】CMake提示could not find any instance of Visual Studio

    CMake提示could not find any instance of Visual Studio. 原因 此种情况是由于默认的CMake工具不是Visual Studio提供的版本导致的. 解决 ...

  6. django 如何提升性能(高并发)

    django 如何提升性能(高并发) 对一个后端开发程序员来说,提升性能指标主要有两个一个是并发数,另一个是响应时间网站性能的优化一般包括 web 前端性能优化,应用服务器性能优化,存储服务器优化. ...

  7. vue模拟el-table演示插槽用法

    vue模拟el-table演示插槽用法 很多人知道插槽分为三种,但是实际到elementui当中为什么这么用,就一脸懵逼,接下来就跟大家聊一聊插槽在elementui中的应用,并且自己写一个类似el- ...

  8. 掌握Python文件操作:从基础到高阶的全方位探索

    在本篇博客中,我们将全面.深入地探讨Python中的文件操作.文件操作在Python编程中是不可或缺的一部分,它包含了打开.读取.写入和关闭文件等各种操作.我们将从基础的文件操作讲解到高级的文件处理技 ...

  9. rust cargo build一直出现 Blocking waiting for file lock on package cache

    如果确定没有多个程序占用,可以删除rm -rf ~/.cargo/.package-cache,然后再执行

  10. 从0搭建Vue3组件库(十):如何搭建一个 Cli 脚手架

    本篇文章将实现一个名为create-easyest脚手架的开发,只需一个命令npm init easyest就可以将整个组件库开发框架拉到本地. 创建 Cli 包 首先,我们在 packages 目录 ...