龙空技术网

国产开源电子表格-Luckysheet(在线excel,功能强大)

Shenco丶wang 752

前言:

现时朋友们对“jquery获取表格中的值”大概比较注意,大家都想要学习一些“jquery获取表格中的值”的相关知识。那么小编在网络上汇集了一些关于“jquery获取表格中的值””的相关资讯,希望大家能喜欢,姐妹们一起来了解一下吧!

1、背景

现在web技术蓬勃发展,办公应用特别是excel都搬到了线上,比较流行的有腾讯文档,金山文档,石墨文档,google doc,这些都属于企业服务。但是小型企业或者团队,如果想自己搭建一套在线表格系统呢?有没有开源的方案?

当然是有的,一些表格具有相对简单的功能,只能显示数据和过滤器功能,或者某些表格支持多种单元格样式,但是此类功能需要付费。比较出名有spreadjs,handsontable,这两个插件有明显的缺点,spreadjs增值功能收费太贵,handsontable二次开发坑很多。

Luckysheet ,是一款国产的纯JS实现的类似excel的在线表格,功能强大、配置简单、完全开源。

Luckysheet是用纯JavaScript编写的前端表格库,可以嵌入到任何前端项目或应用程序中,增强原有的系统功能,而无需使用excel或其他复杂的软件进行数据处理。

这使我们的数据处理、分析、显示和存储可以由一个系统完成,而无需切换平台,不切换系统,便于集成和完全自动化。

2、介绍

“我们决心制作一个功能最丰富,配置和使用最简单的开源电子表格-Luckysheet,为企业报表平台和数据分析平台提供支持,并建立一个数据分析社区。具体来说,我们提供了一个类似于excel的在线编辑表格,其中包含单元格样式,公式,过滤,冻结和其他功能。我们基本支持excel的常用功能,数据分析,显示和编辑的需求。” —Luckysheet作者

Luckysheet ,是一款国产的纯JS实现的类似excel的在线表格,功能强大、配置简单、完全开源。

开源地址:

在线文档:

在线演示:

3、基本使用

要使用LuckySheet,有2种方式,可以从官网下载JS,然后引入本地页面,也可以引入CDN。

3.1 引入JS

<link rel='stylesheet' href='./plugins/css/pluginsCss.css' /><link rel='stylesheet' href='./plugins/plugins.css' /><link rel='stylesheet' href='./css/luckysheet.css' /><link rel='stylesheet' href='./assets/iconfont/iconfont.css' /><script src="./plugins/js/plugin.js"></script><script src="./luckysheet.umd.js"></script>
3.2 置放Excel容器
<div id="luckysheet"></div>
3.3 初始化Excel
<script>    $(function () {        //配置项        var options = {            container: 'luckysheet' //luckysheet为容器id        }        luckysheet.create(options)    })</script>

这样,一个在线Excel就完成了。LuckySheet只提供前端的操作,数据保存要由开发人员自己实现。

3.4 数据保存

数据保存分为两种,一种是:实时保存,一种是“全部保存”。实时保存比较复杂,现在介绍一种简单的全部保存方法。

LuckySheet提供了一个 luckysheet.getAllSheets() 方法,调用此方法,Luckysheet系统会把所有数据一股脑的传递给你,

你可以再页面的OnClick的保存事件里保存这些数据,然后利用Jquery的Post方法,接收数据写入数据库。

下面代码演示了把Luckysheet POST到 xls.aspx 页面

function save() {             var data2 = luckysheet.getAllSheets();             var cnt = JSON.stringify(data2);             $.post("xls.aspx",   {                 cnt: cnt             }); }

在 xls.aspx页面,利用 Request[“cnt”] 就可以获取所有数据,然后保存到数据库。

3.5 数据还原

LuckySheet提供了loadUrl属性,当前端初始化完毕后,luckysheet会调用此属性加载初始化数据。所以,利用此属性,可以还原数据库里保存的数据。

var options = {                  container: 'luckysheet',                  lang: 'zh',                  showinfobar: false,                   row: 20,                  column: 15,                  plugins: ['chart'],                  showstatisticBar: false,                  loadUrl: 'data.aspx?id=11', //还原数据URL                  showsheetbar: false,                  showsheetbarConfig: {                      add: false,                      menu: false,                  }
4、数据缓存

(1) Luckysheet允许在本地加载Luckysheet需要的JS,CSS等,但是这些JS、CSS比较大,为此,可以利用link的prefetch预加载CSS,JS。

  <link rel="prefetch" href="../javascript/luckysheet/plugins/css/pluginsCss.css"  />  <link rel="prefetch" href="../javascript/luckysheet/plugins/plugins.css"  />  <link rel="prefetch" href="../javascript/luckysheet/css/luckysheet.css"  />  <link rel="prefetch" href="../javascript/luckysheet/assets/iconfont/iconfont.css"  />   <link rel="prefetch" href="../javascript/luckysheet/plugins/js/plugin.js"  />  <link rel="prefetch" href="../javascript/luckysheet/luckysheet.umd.js"  />

(2)Luckysheet在插入图片时,图片会议Base64格式存储,所以,最终保存的数据可能非常大。

(3)需要理解Excel的一些简单概念:一个Excel是由多个Sheet组成,而一个Sheet是由多个Cell组成,而每个单元格都会包括 r,c,v(r:单元格的行 row、c:单元格的列 column、 v:单元格的值 value),在使用实时保存时, 二维数组数据转化成 {r, c, v}格式 一维数组。实时保存数据量小,但是比较复杂。

5、导入导出

LuckySheet提供了一个LuckyExcel,他支持Excel的导入和导出。

演示:

6、生成图表

Luckysheet可以使用Echart生成图表组件(饼形图,柱状图,曲线图等)。

标签: #jquery获取表格中的值