Hello,大家好,我是Fiona。经过上周的学习,我已经初步了解了SpreadJS的目录结构,以及如何创建Spread项目到我的工程目录中。>>还不知如何开始学习SpreadJS的同学,可以点击这里

本周,我会继续深入学习SpreadJS,也希望我的学习笔记能够帮助更多刚接触SpreadJS的朋友,从零开始,逐步精通。

本周的小目标:理解并学会使用SpreadJS的工作簿。

在开始记录学习笔记之前,我要特别感谢一个人:来自葡萄城纯前端技术交流群的大牛Kevin——一个声音充满磁性、技术全面、细致入微的大暖男。

正是在Kevin的帮助下,我仅用了3天时间,便掌握并实现了SpreadJS 的滚动条、标签、工作簿事件、命中测试等功能。下面我将以图文的形式记录我的学习笔记,并在文末上传我做的Demo,希望给大家一些借鉴:

初始化 SpreadJS

通过选择【表单名称标签】菜单下的“显示新增按钮”,即可控制Sheet状态栏的加号是否显示:

SpreadJS 滚动条

通过选择【滚动条】菜单下的“显示水平滚动条”选项,即可控制表单水平、竖直滚动条是否显示:

通过选择【背景】菜单下的“填充表格背景色”和“填充灰色区域背景色”,即可改变表格和状态栏区域的主题颜色配置:

SpreadJS JSON 文件的导入/导出

SpreadJS表格控件支持以JSON的格式导入导出数据,并可保存录入数据。SpreadJS通过使用数据源序列化和自定义特性序列化两种方式实现JSON格式的导入和导出。

 

数据源序列化

若要将表单中的数据源序列化到JSON对象中,可以设置参数includeBindingSource: true,若未设置默认为false.
如下图,点击【数据源序列化】按钮,即可将上表中的数据源数据导出,在下表中导入:

自定义特性序列化
除了数据源序列化,SpreadJS也支持按用户自定义的特性进行JSON数据的序列化与反序列化。如下图,点击【加样式】按钮,即可为表格的视图及标签区域加入自定义样式,点击【自定义特性序列化】即可按照刚加入的自定义样式进行序列化。

注:SpreadJS支持按以下自定义特性进行序列化与反序列化:

  1.      自定义单元格类型
  2.      自定义函数
  3.      自定义格式
  4.      自定义函数、迷你图
  5.      自定义标签
  6.      自定义行筛选

hitTest(命中测试)

通过点击SpreadJS工作簿的单元格以进行命中测试,利用hitTest方法实现返回特定区域的属性值。

SpreadJS Demo 示例

以下是我在学习SpreadJS工作簿的过程中,自己写的两个小示例,供大家参考。

SpreadJSBasicDemo1.zip:包含了背景、滚动条、标签功能的示例

SpreadJSBasicDemo2.zip:包含了工作簿事件、命中测试,以及JSON文件

OK,今天先记录到这里,下一步计划:学习SpreadJS的表单。

SpreadJS,我一定会征服你的,加油!

PS:文中提到的Kevin小哥哥非常腼腆,这里就不方便透露他的私人联系方式了。不过,在前端技术交流群(720389894)中可以找到他

 

从零开始,SpreadJS 新人学习笔记(第二周)的更多相关文章

  1. 从零开始,SpreadJS新人学习笔记【第3周】

    表单&函数 阔别多日, SpreadJS新人学习笔记,本周起正式回归!(在断更的这一个月中,我为大家先后录制了14期SpreadJS产品入门系列学习视频,希望帮助那些正在学习和使用 Sprea ...

  2. 从零开始,SpreadJS新人学习笔记【第5周】

    复制粘贴.单元格格式和单元格类型 本周,让我们一起来学习SpreadJS 的复制粘贴.单元格格式和单元格类型,希望我的学习笔记能够帮助你们,从零开始学习 SpreadJS,并逐步精通. 在此前的学习笔 ...

  3. 从零开始,SpreadJS新人学习笔记【第4周】

    数据绑定.脏数据和单引号前缀 本周,让我们一起来学习SpreadJS 的数据绑定.脏数据和单引号前缀,希望我的学习笔记能够帮助你们,从零开始学习 SpreadJS,并逐步精通. 在此前的学习笔记中,相 ...

  4. 从零开始,SpreadJS 新人学习笔记

    Hello,大家好,我是Fiona,从事前端开发工作,我十分热爱我的工作和一直默默栽培我的老板(这段请加粗). 前不久,接到老板的安排: 说实话,接到这个需求,我整个人的状态是这样的: 但是,我不能辜 ...

  5. python学习笔记第二周

    目录 一.基础概念 1.模块 1)os模块 2)sys模块 2.pyc文件 3.数据类型 1)数字 2)布尔值 3)字符串 4.数据运算 5.运算符 6.赋值运算 7.逻辑运算 8.成员运算 9.身份 ...

  6. [Boolan-C++学习笔记]第二周整理

    1.对于String类型的类(含有指针) 其中的指针成员能够灵活的申请存储空间,但指针操作又带来内存泄漏的风险,变更指针的操作需要尤为谨慎. 要点在于写好BigThree 构造函数 { 完成成员初始化 ...

  7. java基础学习笔记 第二周(面向对象)

    Day01 什么是抽象数据类型:将不同数据类型的集合组成的一个整体,我们称为抽象数据类型 类就是一个抽象数据类型 成员变量:类中的数据类型就是成员变量(属性) 方法:类中的一些行为就是方法 面向过程( ...

  8. 《DOM Scripting》学习笔记-——第二章 js语法

    <Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...

  9. The Road to learn React书籍学习笔记(第二章)

    The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...

随机推荐

  1. vue大文件上传断点续传解决方案

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

  2. Git 如何针对项目修改本地提交提交人的信息

    Git 如果不进行修改的话,在默认情况下将会使用全局的用户名称和电子邮件. 但是在 GitHub 中是通过用户邮件来进行提交人匹配的. 如何针对项目来修改提交的用户信息? 针对 TortoiseGit ...

  3. Visualizing and Understanding Convolutional Networks

    前言:研究卷积神经网络,把阅读到的一些文献经典的部分翻译一下,写成博客,代码后续给出,不足之处还请大家指出. 本文来自:tony-tan.com Github:github.com/Tony-Tan ...

  4. BZOJ3033太鼓达人

    第一问,1<<k,谁都看得出来. 毫无思路,暴搜,枚举每一个数列,Hash加map判断是否重复,拿到30,打表都打不出来. #include <iostream> #inclu ...

  5. laravel 5以后数据库插入自动转化方式

  6. Python中列表操作进阶及元组

    列表高级操作 一.遍历列表 >>> ls=['a','d','it'] >>> for val in ls: ... print (val) ... a d it ...

  7. Linux 安全工具之extundelete误删除恢复

    一:前言 在Linux中,我们通常会因为误删除文件而感到烦恼,rm -rf +文件  rf参数简直就是每个运维的噩梦,但是大家想过没,为什么删除文件那么快呢,为什么我们copy文件的时候那么慢. 其实 ...

  8. python sqlalchemy 进行 mysql 数据库操作

    1. 进行mysql数据库的创建,如果已经存在,就相当于进行数据库的连接操作 from sqlalchemy import create_engine from sqlalchemy.ext.decl ...

  9. DP&图论 DAY 6 上午

    DP&图论  DAY 6  上午 双连通分量 从u-->v不存在必经边,点 点双连通分量 边双连通分量 点/边双连通分量缩点之后变成一个树 找连通块的时候不越过割点或者桥 P3469 [ ...

  10. 3-mybatis-xml配置

    配置文件主要在官网文档是已有详细说明. 1  properties 在上一节中已经有说明. 2 settings MyBatis中的调整设置. <settings> <!--全局地开 ...