zoukankan      html  css  js  c++  java
  • jQuery实现仿Excel表格编辑功能 Handsontable

    前言:

      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/

  • 相关阅读:
    原型链与继承
    js错误处理Try-catch和throw
    函数柯里化
    js函数节流
    事件委托
    innerHTML属性的内存和性能问题
    微信小程序左滑显示按钮demo
    this的作用
    前端工作面试经典问题(超级全)
    HTML5入门指南
  • 原文地址:https://www.cnblogs.com/tv151579/p/3052663.html
Copyright © 2011-2022 走看看