jQuery实现仿Excel表格编辑功能 Handsontable

摘要:
您几乎可以在网页中执行Excel中可以执行的所有操作,如拖动复制、Ctrl+C、Ctrl+V等。此外,在浏览器支持方面,它支持以下浏览器:IE7+、FF、Chrome、Safari、Opera。

前言:

Handsontable是一个相当给力的 jQuery插件,它实现了 HTML 页面中的表格编辑功能,并且是仿 Excel 的编辑效果。

在 Excel 中可进行的操作,你几乎都可以在网页中做到,如拖动复制、Ctrl+C 、Ctrl+V 等等。

另外在浏览器支持方面,它支持以下的浏览器 IE7+, FF, Chrome, Safari, Opera。

如何使用:

首先在页面中引入jQuery框架和Handsontable插件的相关 JS 和 CSS 文件,以下列出的两个是必要的,还有其它的是可选的,如果需要某个功能时就(参看demo)加上。

    <script src="jquery.min.js"></script>
    <script src="jquery.handsontable.full.js"></script>
    <link rel="stylesheet" href="jquery.handsontable.full.css">

然后添加一个用于呈现 Excel 编辑表格的 DIV 层

<div id="example1" ></div>

最后就可以对其进行初始化了

            //数据
            var data =[
              {id: 1, name: "Ted", isActive: true, color: "orange"},
              {id: 2, name: "John", isActive: false, color: "black"},
              {id: 3, name: "Al", isActive: true, color: "red"},
              {id: 4, name: "Ben", isActive: false, color: "blue"}
            ];
            //黄色渲染方法
            var yellowRenderer =function (instance, td, row, col, prop, value, cellProperties) {
              Handsontable.TextCell.renderer.apply(this, arguments);
              $(td).css({
                background: 'yellow'});
            };
            //绿色渲染方法
            var greenRenderer =function (instance, td, row, col, prop, value, cellProperties) {
              Handsontable.TextCell.renderer.apply(this, arguments);
              $(td).css({
                background: 'green'});
            };
            //初始化
            var $container = $("#example1");
            $container.handsontable({
              data: data,
              startRows: 5,
              colHeaders: true,
              minSpareRows: 1,
              columns: [
                {data: "id"},
                {data: "name", type: {renderer: yellowRenderer}}, //黄色渲染
                {data: "isActive", type: Handsontable.CheckboxCell}, //多选框
                {data: "color",
                  type: Handsontable.AutocompleteCell, //自动完成
                  source: ["yellow", "red", "orange", "green", "blue", "gray", "black", "white"] //数据源
}
              ],
              cells: function (row, col, prop) {
                if (row === 0 && col === 0) {
                  return{type: {renderer: greenRenderer}};
                }
              }
            });

注意是div容器加载完了之后进行初始化:

demo代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Basic Demo</title>
    <script src="jquery.min.js"></script>
    <script src="jquery.handsontable.full.js"></script>
    <link rel="stylesheet" href="jquery.handsontable.full.css">
    <script>$(function(){
            //数据
            var data =[
              {id: 1, name: "Ted", isActive: true, color: "orange"},
              {id: 2, name: "John", isActive: false, color: "black"},
              {id: 3, name: "Al", isActive: true, color: "red"},
              {id: 4, name: "Ben", isActive: false, color: "blue"}
            ];
            //黄色渲染方法
            var yellowRenderer =function (instance, td, row, col, prop, value, cellProperties) {
              Handsontable.TextCell.renderer.apply(this, arguments);
              $(td).css({
                background: 'yellow'});
            };
            //绿色渲染方法
            var greenRenderer =function (instance, td, row, col, prop, value, cellProperties) {
              Handsontable.TextCell.renderer.apply(this, arguments);
              $(td).css({
                background: 'green'});
            };
            //初始化
            var $container = $("#example1");
            $container.handsontable({
              data: data,
              startRows: 5,
              colHeaders: true,
              minSpareRows: 1,
              columns: [
                {data: "id"},
                {data: "name", type: {renderer: yellowRenderer}}, //黄色渲染
                {data: "isActive", type: Handsontable.CheckboxCell}, //多选框
                {data: "color",
                  type: Handsontable.AutocompleteCell, //自动完成
                  source: ["yellow", "red", "orange", "green", "blue", "gray", "black", "white"] //数据源
}
              ],
              cells: function (row, col, prop) {
                if (row === 0 && col === 0) {
                  return{type: {renderer: greenRenderer}};
                }
              }
            });
        });
    </script>
</head>
<body>
    <div id="example1" ></div>
</body>
</html>

转自:http://site518.net/jquery-excel-like-table-editor-handsontable/

免责声明:文章转载自《jQuery实现仿Excel表格编辑功能 Handsontable》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ElasticSearch7.4.2安装、使用以及与SpringBoot的整合Windows Server 2008 R2(64位)下安装SQL Server 2005下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jquery取值方法汇总

一、下拉框 1、jquery获取当前选中select的text值 var a = $("#ShareMoneyType").find("option:selected").text(); 2、jquery获取下拉框选中的Value值 var v = $("#ShareMoneyType").val(); 3、jquery获取当前选中select的索引值...

数据集成之主数据管理(一)基础概念篇

数据集成是当下比較热门的话题,相关的产品和平台也越来越多。非常多CIO都在各种数据集成平台和产品之间犹豫不决。因此对数据集成平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才干为数据平台选型的决策提供可靠的保证。 我有幸參与了国内一个知名企业的集成平台的设计工作,并主导了数据集成平台的需求分析和产品选型工作。这次工作中,研究了非常多新的...

微信小程序设置全局请求URL 封装wx.request请求

app.js: App({ //设置全局请求URL globalData:{ URL: 'https://www.oyhdo.com', }, /** * 封装wx.request请求 * method: 请求方式 * url: 请求地址 * data: 要传递的参数 * callback: 请求...

jquery模拟点击事件

在某些情况下,我们需要自动执行一些点击事件。比如:一些 tab 一般是通过点击事件来加载不同的数据内容。 而如果要页面加载完直接显示第三个 tab,怎么办呢?此时就需要用到 jQuery 的模拟点击事件。 要用到 jQuery 的 trigger 方法。 如: $('#btn').trigger("click"); 会自动执行 id 为 btn 的 cli...

杂志翻页效果(基于jQuery开源版的修改)

      先看一个开源版本 http://tympanus.net/Tutorials/MoleskineNotebook/ 效果很酷的(所需资源与案例可自行访问) 就是喜欢这个酷酷的效果,但也有点美中不足,就是可定制性不强。例如大小、页数、初始化、内容加载等等,都不好控制。 这个家伙的初始化话要求html中指定页数,而且还要一个图片的load事件,且不...

jquery 多级联动下拉列表含(数据模型)

方法 /** * 级联 * 联动 * @param url:访问json数据的地址 * @param param:参数 * @param levelIds:页面下拉标签数组,为联动级数 * @private */ function _yh_linkage(url,params, levelIds){ _yh_post...