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生成不重复随机数组的函数代码
Jun 10 Javascript
javascript中CheckBox全选终极方案
May 20 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
Apr 26 Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 Javascript
vue.js的提示组件
Mar 02 Javascript
解决修复npm安装全局模块权限的问题
May 17 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
May 20 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
Aug 22 Javascript
vuex state中的数组变化监听实例
Nov 06 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 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编码规范之注释和文件结构说明
2010/07/09 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
Dom在ajax技术中的作用说明
2010/10/25 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
原生js实现焦点轮播图效果
2017/01/12 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Python多继承原理与用法示例
2018/08/23 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
css3实现动画的三种方式
2020/08/24 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
运动会口号16字
2014/06/07 职场文书
岗位说明书怎么写
2014/07/30 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
python not运算符的实例用法
2021/06/30 Python
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫