jQuery仿Excel表格编辑功能的实现代码


Posted in Javascript onMay 01, 2013

在 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>
Javascript 相关文章推荐
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
JavaScript调用ajax获取文本文件内容实现代码
Mar 28 Javascript
ajax如何实现页面局部跳转与结果返回
Aug 24 Javascript
BootStrap智能表单实战系列(七)验证的支持
Jun 13 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
Sep 23 Javascript
基于JavaScript实现拖动滑块效果
Feb 16 Javascript
JS高仿抛物线加入购物车特效实现代码
Feb 20 Javascript
纯js+css实现在线时钟
Aug 18 Javascript
vue配置多代理服务接口地址操作
Sep 08 Javascript
详解JavaScript的计时器和按钮效果设置
Feb 18 Javascript
JavaScript 实现类的多种方法实例
May 01 #Javascript
Json字符串转换为JS对象的高效方法实例
May 01 #Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 #Javascript
javascript中的onkeyup和onkeydown区别介绍
Apr 28 #Javascript
JQuery中如何传递参数如click(),change()等具体实现
Apr 28 #Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
Apr 28 #Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
Apr 28 #Javascript
You might like
php轻松实现中英文混排字符串截取
2014/05/28 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
php验证码实现代码(3种)
2015/09/07 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
异步传递消息系统的作用
2016/05/01 面试题
高中校园广播稿
2014/01/11 职场文书
矿泉水广告词
2014/03/20 职场文书
《荷花》教学反思
2014/04/16 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
办公室岗位职责
2015/02/04 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
数学备课组工作总结
2015/08/12 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers