文档章节

SpreadJS序列化与反序列化表格(Serialization + Deserialization)

x
 xiaochuachua
发布于 04/02 14:07
字数 1119
阅读 4
收藏 0

下载SpreadJS最新试用版

前言

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格式保存成的文件)。

SpreadJS

在页面展示的时候我们可以在js中读取该文件(例如jquery的\$.getJSON(),通过js文件读取等方式),并将获取到的json对象通过spread.fromJSON反序列化成页面展示。这样就完成了模板的快速构建。

2、差异化处理

在用户的业务逻辑中经常需要进行一些差异化的处理,例如:填报模板的中设置的公式,不希望在导出的时候被导出。那么可以通过在tojson中进行设置来忽略。

3、多列头的导出

SpreadJS中有一些扩展的功能例如多列头是Excel不支持的,而该功能经常在业务逻辑中被使用,所以如果有同时需要导出Excel的处理这种鱼和熊掌不可兼得的事情往往会产生很多困扰,那么为了解决这样的问题,在导出之前的toJSON时就可以通过设置columnHeadersAsFrozenRows属性,之后将生成的json在导出时传递给ExcelIO,这样导出的Excel中会将SpreadJS的多列头通过冻结行来进行显示。例如下面的表格:

SpreadJS

设置了多行头与多列头,要想导出Excel中包含行头和列头的信息,可以在toJSON的时候设置rowHeadersAsFrozenColumns与columnHeadersAsFrozenRows这两个属性,那么导出之后就可以将行头列头信息显示在Excel中,像这样:

SpreadJS


SpreadJS | 下载试用

纯前端表格控件SpreadJS,是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于.NET、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。

本文转载自:https://www.grapecity.com.cn/blogs/spreadjs-serialization-deserialization

x
粉丝 0
博文 225
码字总数 49214
作品 0
私信 提问
在线 excel 开发之新人学习笔记——工作簿2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/powertoolsteam/article/details/88819594 本文Demo下载地址:https://gcdn.grapecity.com.cn/forum.php?mod...

powertoolsteam
03/26
0
0
处理Web端表格数据,华为、海信等企业为何都选择了SpreadJS?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/powertoolsteam/article/details/88886102 近年来,随着互联网产业的飞速发展,企业业务层面的大数据分析系统...

powertoolsteam
03/29
0
0
【新功能前瞻】SpreadJS 纯前端表格控件V12.2:打印增强、拖拽填充等六大特性

新版本来袭:葡萄城 SpreadJS 纯前端表格控件的全新版本 V12.2 将于8月正式发布! 作为一款备受华为、招商银行、中国平安、苏宁易购等行业专家和前端开发者认可的纯 JavaScript 电子表格和网...

葡萄城技术团队
07/23
40
0
SpreadJS V10 发布,纯前端表格控件

伴随着新版本的发布,SpreadJS纯前端产品包日益壮大! 原有SpreadJS产品正式更名为SpreadJS表格(Spread.Sheets)。并推出了全新的SpreadJS视图(Spread.Views)控件并正式加入SpreadJS产品包(S...

葡萄城技术团队
2016/12/12
6.6K
7
【隆重发布】纯前端表格控件 SpreadJS V12.1

纯前端表格控件 SpreadJS V12.1 已经正式发布,本次新版本中包含了诸多来自客户反馈的重要特性,例如:状态条(Status Bar)、自动填充(AutoFill)以及比Excel更加灵活的数据验证提示样式(...

葡萄城技术团队
06/12
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

Rabbit MQ 延迟消息发送

为什么使用延迟消息? 不同于同步消息,有些业务场景下希望可以实现延迟一定时间再消费消息。 典型的场景有微信、支付宝等第三方支付回调接口,会在用户支付后3秒、5秒、30秒等等时间后向应用...

兜兜毛毛
8分钟前
2
0
【0918】正则介绍_grep

【0918】正则介绍_grep 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下 一、正则介绍 正则是一串有规律的字符串,它使用单个字符串来描述或匹配一系列符合某个语法规则的字符串。 二、grep工具 ...

飞翔的竹蜻蜓
38分钟前
4
0
为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
今天
8
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
今天
4
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部