本文主要介绍如何实现SpreadJS的自定义特性序列化。
SpreadJS支持以下自定义特性的序列化与反序列化:自定义单元格类型,
自定义函数,自定义格式,自定义函数迷你图,自定义标签,以及自定义
行筛选。
相关的类型应该提供一个typeName字段在其toJSON函数过程中,如此将
类型名与window对象相联系。当反序列化时,调
用getTypeFromString函数来获取类型名并且构造类型实例对象,然后调用
类型实例上的fromJSON方法。
以下规则将帮助你正确的序列化或反序列化自定义特性:
?给typeName字段设置完整的类型名字符串(如果有命名空间也应包含
命名空间)。
?如果自定义类型有循环依赖或是你希望减小JSON数据的大小,亦或
是你有其他更高级的需求,那么你的自定义类型需要重
写toJSON和fromJSON方法。
?如果自定义类型定义在一个闭包中,换句话说,你不希望将自定义类
型定义在window对象上,你需要重写getTypeFromString函数来
手动解析类型的字符串。
代码如下:
varmynamespace={};
(function(){
functionMyFunction(){
GC.Spread.CalcEngine.Functions.Function.apply(this,
["MyFunction",0,0]);
this.typeName="mynamespace.MyFunction";
}
MyFunction.prototype=new
GC.Spread.CalcEngine.Functions.Function();
MyFunction.prototype.evaluate=function(args){
varnow=newDate();
returnnow.getFullYear()+"/"+(now.getMonth()+
1)+"/"+now.getDate();
};
mynamespace.MyFunction=MyFunction;
})();
SpreadJS纯前端表格控件是基于HTML5的JavaScript电子表格和网格功能控
件,适用于.NET、Java和移动端等各平台在线编辑类Excel功能的表格程序开
发。
|
|