序列化_SpreadJS序列化与反序列化表格Serialization+Deserialization
前言
SpreadJS表格控件有着很强大的功能:序列化与反序列化表格。熟练使用该功能达到加快开发进度,减少代码量,降低业务逻辑复杂度,处理一些特殊逻辑需求等效果。
功能使用介绍:
序列化:
通过序列化可以将当前的整个spread序列化成为JSON格式进行存储。通过spread.toJSON(serializationOption)方法就可以做到,方法中还提供一些选项可以用来控制序列化的结果:
var serializationOption = { ignoreFormula: true, // 如果设置为true则忽略公式,不会序列化公式,只会将公式计算的结果序列化到JSON中。 ignoreStyle: true, // 如果设置为true则忽略样式,所有style中的属性将不会序列化到JSON中 rowHeadersAsFrozenColumns: true, // 将行头转换为冻结列序列化 columnHeadersAsFrozenRows: true, // 将列头转换为冻结行序列化 includeBindingSource: true // 将数据绑定的数据源也序列化到json中}
反序列化:
通过反序列化可以将之前序列化的JSON格式的对象反序列化成为页面进行展示。通过spread2.fromJSON(json, jsonOptions)方法可以做到,同样方法中也提供一些选项来控制反序列化的结果:
var jsonOptions = { ignoreFormula: true, // 如果设置为true则忽略公式,反序列化时忽略公式,只会将公式计算的结果反序列化展示到页面中。 ignoreStyle: true, // 如果设置为true则忽略样式,不会将style中的属性反序列化展示 frozenColumnsAsRowHeaders: true, // 将冻结列转换为行头 frozenRowsAsColumnHeaders: true, // 将冻结行转换为列头 doNotRecalculateAfterLoad: true, // 反序列化后公式不进行重新计算}
常见使用场景:
1、在设计器中使用序列化和反序列化:
通过SpreadJS提供的设计器可以快速的进行模板设计,设计器中可以通过拖拽,点击,配置等操作快速进行模板设置从而节省大量的代码编辑操作。当在设计器中设计好模板之后可以通过设计器提供的导出功能,将模板导出成ssjson文件(该文件就是将序列化toJSON之后生成JSON格式保存成的文件)。
在页面展示的时候我们可以在js中读取该文件(例如jquery的$.getJSON(),通过js文件读取等方式),并将获取到的json对象通过spread.fromJSON反序列化成页面展示。这样就完成了模板的快速构建。
2、差异化处理
在用户的业务逻辑中经常需要进行一些差异化的处理,例如:填报模板的中设置的公式,不希望在导出的时候被导出。那么可以通过在tojson中进行设置来忽略。
3、多列头的导出
SpreadJS中有一些扩展的功能例如多列头是Excel不支持的,而该功能经常在业务逻辑中被使用,所以如果有同时需要导出Excel的处理这种鱼和熊掌不可兼得的事情往往会产生很多困扰,那么为了解决这样的问题,在导出之前的toJSON时就可以通过设置columnHeadersAsFrozenRows属性,之后将生成的json在导出时传递给ExcelIO,这样导出的Excel中会将SpreadJS的多列头通过冻结行来进行显示。例如下面的表格:
设置了多行头与多列头,要想导出Excel中包含行头和列头的信息,可以在toJSON的时候设置rowHeadersAsFrozenColumns与columnHeadersAsFrozenRows这两个属性,那么导出之后就可以将行头列头信息显示在Excel中,像这样:
SpreadJ
纯前端表格控件SpreadJS,是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于.NET、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。
点击“了解更多”,下载SpreadJS最新试用版
↓↓↓
序列化_SpreadJS序列化与反序列化表格Serialization+Deserialization相关推荐
- java序列化 反序列化_Java序列化– Java序列化
java序列化 反序列化 Serialization in Java was introduced in JDK 1.1 and it is one of the important feature ...
- baseresponse响应类_内部类、响应类Response、序列化基类、反序列化、全局局部钩子...
一.内部类 1.概念:将类定义在一个类的内部,被定义的类就是内部类 2.特点:内部类及内部类的所以名称空间,可以直接被外部类访问的 3. 应用:通过内部类的名称空间,给外部类额外拓展一些特殊的属性(配 ...
- 魔方APP项目-04-用户模块API接口、Marshmallow,基本构造器(Schema),Schema数据序列化、Schema数据反序列化、反序列化对数据验证、模型构造器(ModelSchema)
用户模块 当前开发的项目属于社交类型项目,所以关于用户的信息和功能直接贯穿了整个项目.所以此处实现用户模块功能,我们先把用户基本信息构建起来,并通过基本信息实现用户注册登录相关功能,后面遇到业务再继续 ...
- java byte序列化,java对象序列化byte[] and byte[]反序列化对象--转
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...
- 对象序列化流与对象反序列化流(ObjectOutputStream,ObjectInputStream)
这个连接包含了常用的流------IO流(总篇章) 对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象 这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型.对象的数据和对象中存 ...
- java实现序列化_java 序列化实现方式总结
什么是序列化,可能大家都知道,但又不很清楚,呵呵,就像我一样,下面是一段百度百科的说明,说的很清楚,可以参考下 序列化 (serialization) 将对象的状态信息转换为可以存储或传输的窗体的过程 ...
- java c 序列化_Java 序列化
序列化(对象写入文件) 反序列化(从文件读取对象) public class Demo01 { public static void main(String[] args) throws IOEx ...
- java kryo_kryo序列化 - Java序列化期间的错误
我的应用程序有大量域对象,它们通过spring-session被序列化到Redis存储中.我试图使用Kryo(4.0.0)进行自动序列化,而不使对象明确可序列化.kryo序列化 - Java序列化期间 ...
- java map 实现 序列化,MapReduce序列化
序列化就是把内存中的对象转换成字节序列以便于存储到磁盘(持久化)和网络传输. 反序列化就是将字节序列或者是持久化的数据转换成内存中的对象. 内存中的对象只能本地进程使用,断掉后就消失了,也不能被发送到 ...
最新文章
- 【转载】C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?
- linux IO多路复用 select epoll
- java home not set_Error: JAVA_HOME is not set and could not be found.
- 智能商业大会构造信息化交流平台
- emui消息推送服务器,别再抱怨,这次或许真的轮到你了,EMUI9.1推送进度再次更新...
- Python实现给指定的微信朋友发信息
- Oracle数据库迁移测试数据,Oracle数据库的数据迁移方法
- 搜狗语音输入提示服务器繁忙,讯飞语音输入如何提高识别率 提高方法
- EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public?
- StringEscapeUtils的资料
- Mysql复合索引的顺序和必要值
- 基坑计算理论m法弹性支点法_建筑基坑支护考题汇总.doc
- 软件工程毕业设计课题(2)基于python的毕业设计python旅游网站系统毕设作品
- 例3.2 计算存款利息
- cad直线和圆弧倒角不相切_cad中绘制圆角倒角有哪些技巧?
- Stars in Your Window 【POJ - 2482】【线段树扫描线】
- 苹果cmsV10韩剧TV简约影视网站源码电脑和手机模板自适应
- 谈谈互联网推广:从了解用户开始
- 【web】【django】datatable的button扩展实现纯前端下载和copy指定列内容,以及django的HTTPResponse实现下载功能
- 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。
热门文章
- 【面试题】序列化的 10 几个问题
- Spark : DNS resolution failed for url in bootstrap.servers xx:9092
- android系统广播 定向广播,Android之定向广播
- 职称计算机excel2015年,2015年职称计算机《Excel2003》最新章节练习题(5)
- but was actually of type [com.sun.proxy.$Proxy13]
- Python中 模块、包、库
- 团队作业3:团队项目原型设计与开发
- spring 14-Spring框架JDBC操作
- 646. Maximum Length of Pair Chain 最长的链条长度
- Java 实例 - 测试两个字符串区域是否相等