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 相关文章推荐
jMessageBox 基于jQuery的窗口插件
Dec 09 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
Jul 05 Javascript
javascript框架设计读书笔记之种子模块
Dec 02 Javascript
再次谈论Javascript中的this
Jun 23 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
JS字符串false转boolean的方法(推荐)
Mar 08 Javascript
windows下vue.js开发环境搭建教程
Mar 20 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
Aug 16 Javascript
微信小程序 image组件遇到的问题
May 28 Javascript
详解mpvue实现对苹果X安全区域的适配
Jul 31 Javascript
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
PHP关联链接常用代码
2012/11/05 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
Python二维码生成识别实例详解
2019/07/16 Python
解析python的局部变量和全局变量
2019/08/15 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
python 模拟登陆github的示例
2020/12/04 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
个人课题方案
2014/05/08 职场文书
高中教师考核方案
2014/05/18 职场文书
档案保密承诺书
2014/06/03 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL