jQuery仿Excel表格编辑功能的实现代码

  在 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>