当前位置:
首页 > 网站开发 > JavaScript >
-
JavaScript教程之Handsontable, formula.js
本文介绍使用Handsontable 来实现web项目网页上的Excel,以及Excel公式渲染,对技术做个总结,有什么遗漏或有误的地方,欢迎大家指教。
Handsontable 官网: https://handsontable.com/
Handsontable API:https://docs.handsontable.com/pro/3.0.0/tutorial-introduction.html
Handsontable 是实现了网页展示Excel的功能,展示的时候如果用到Excel公式,就需要借助 formula.js 和 ruleJS.js 来实现了
Formula.js 是一个实现 Microsoft Excel 和 Google Spreadsheets 等类似的电子表格应用程序具有的强大公式的功能库,带给 Web 开发人员最常用的日期/时间,文本,逻辑,金融等各个类别的公式
下面是几个借鉴的网站:
handsontable的单元格操作方法 : https://www.cnblogs.com/sily-boy/p/4863156.html
handsontable自定义渲染 : https://www.cnblogs.com/QiuJL/p/6972327.html
Handsontable 自定义渲染 Renderer 类型:
-
autocomplete
forHandsontable.renderers.AutocompleteRenderer
-
base
forHandsontable.renderers.BaseRenderer
-
checkbox
forHandsontable.renderers.CheckboxRenderer
-
date
forHandsontable.renderers.DateRenderer
-
dropdown
forHandsontable.renderers.DropdownRenderer
-
html
forHandsontable.renderers.HtmlRenderer
-
numeric
forHandsontable.renderers.NumericRenderer
-
password
forHandsontable.renderers.PasswordRenderer
-
text
forHandsontable.renderers.TextRenderer
-
time
forHandsontable.renderers.TimeRenderer
1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head runat="server"> 3 <title>A</title> 4 <script src="Script/jquery-1.10.1.min.js"></script> 5 <script src="Script/handsontable.full.js"></script> 6 <link href="Script/handsontable.full.css" rel="stylesheet" /> 7 <script src="Script/lodash.js"></script> 8 <script src="Script/underscore.string.js"></script> 9 <script src="Script/moment.js"></script> 10 <script src="Script/numeral.js"></script> 11 <script src="Script/numeric.js"></script> 12 <script src="Script/md5.js"></script> 13 <script src="Script/jstat.js"></script> 14 <script src="Script/formula.js"></script> 15 <script src="Script/parser.js"></script> 16 <script src="Script/ruleJS.js"></script> 17 <script src="Script/handsontable.formula.js"></script> 18 </head> 19 <body> 20 <form id="form1" runat="server"> 21 <div id="handsontable-code" class="dataTable" /> 22 </form> 23 24 </body> 25 <script type="text/javascript"> 26 $(document).ready(function () { 27 28 var data1 = [ 29 ['第一列', "第二列", "第三列", "第四列", '第五列', "第六列"], 30 [2009, 0, 2941, 4303, 354, 5814], 31 [2010, 5, 2905, 2867, '=SUM(A4,2,3)', '=$B1'], 32 [2011, 4, 2517, 4822, 552, 6127], 33 [2012, '=SUM(A2:A5)', '=SUM(B5,E3)', '=A2/B2', 12, 4151] 34 ]; 35 Handsontable.renderers.registerRenderer('negativeValueRenderer', negativeValueRenderer); 36 var container1 = $('#handsontable-code'); 37 container1.handsontable({ 38 data: data1, 39 minSpareRows: 1, //为0时,handsontable 可去掉最后多余的一行 40 colHeaders: true, 41 rowHeaders: true, 42 contextMenu: true, 43 manualColumnResize: true, 44 formulas: true, 45 cells: function (row, col, prop) { 46 var cellProperties = {}; 47 cellProperties.renderer = "negativeValueRenderer"; 48 return cellProperties; 49 } 50 }); 51 }); 52 53 function negativeValueRenderer(instance, td, row, col, prop, value, cellProperties) { 54 //Handsontable.renderers.TextRenderer.apply(this, arguments); //单纯的文本渲染,会把公式当作文本直接打出来 55 Handsontable.TextCell.renderer.apply(this, arguments); //TextCell.renderer 单元格渲染,可以识别公式 56 if (row == 4 ){ 57 td.style.background = '#66CDAA'; 58 } else { 59 cellProperties.readOnly = true; 60 } 61 } 62 </script> 63 </html>
代码引自:http://blog.163.com/lilinrui_ruirui/blog/static/2011580362016112051619913/ ,对实例做了修改
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式