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与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
js关于字符长度限制的问题示例探讨
Jan 24 Javascript
javascript消除window.close()的提示窗口
May 20 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
JavaScript随机生成颜色的方法
Oct 15 Javascript
bootstrap laydate日期组件使用详解
Jan 04 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 jQuery
vue.js中Vue-router 2.0基础实践教程
May 08 Javascript
express框架实现基于Websocket建立的简易聊天室
Aug 10 Javascript
thinkjs 文件上传功能实例代码
Nov 08 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
Feb 28 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
Jun 25 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读取本地json文件的实例
2018/03/07 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
详细介绍Python语言中的按位运算符
2013/11/26 Python
Python3基础之基本运算符概述
2014/08/13 Python
开始着手第一个Django项目
2015/07/15 Python
Python制作爬虫采集小说
2015/10/25 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
学python安装的软件总结
2019/10/12 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
如何做好总经理助理
2013/11/12 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
法人授权委托书范本
2014/09/17 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
redis 查看所有的key方式
2021/05/07 Redis
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers