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 相关文章推荐
动态添加删除表格行的js实现代码
Feb 28 Javascript
node.js中使用node-schedule实现定时任务实例
Jun 03 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
Apr 06 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
May 25 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
Jan 31 Javascript
element ui 对话框el-dialog关闭事件详解
Feb 26 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
Oct 26 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
Sep 04 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随机输出名人名言的代码
2012/10/07 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
微信小程序实现图片预览功能
2018/01/31 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
django表单实现下拉框的示例讲解
2018/05/29 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
python实现坦克大战
2020/04/24 Python
python删除某个目录文件夹的方法
2020/05/26 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
物业管理求职自荐信
2013/09/25 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL