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 相关文章推荐
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
jquery访问ashx文件示例代码
Aug 11 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
Nov 10 Javascript
JS实现的样式切换功能tableCSS实例
Dec 30 Javascript
self.attachevent is not a function的解决方法
Apr 04 Javascript
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 Javascript
javascript判断一个变量是数组还是对象
Apr 10 Javascript
JavaScript switch语句使用方法简介
Dec 30 Javascript
Js图片点击切换轮播实现代码
Jul 27 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
WHOIS类的修改版
2006/10/09 PHP
小偷PHP+Html+缓存
2006/12/20 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
Python实现的Excel文件读写类
2015/07/30 Python
Python进程间通信Queue实例解析
2018/01/25 Python
python实现矩阵打印
2019/03/02 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
办公室副主任岗位职责
2013/11/25 职场文书
毕业生求职的求职信
2013/12/05 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
Python学习开发之图形用户界面详解
2021/08/23 Python