配色: 字号:
如何实现SpreadJS的自定义特性序列化
2017-01-06 | 阅:  转:  |  分享 
  
本文主要介绍如何实现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功能的表格程序开

发。

献花(0)
+1
(本文系zenmshuo首藏)