SpreadJS快速提供真正类似 Excel 的电子表格体验 - 对 Excel 零依赖。创建财务应用程序,仪表板,图表,数据透视表,性能基准,科学实验室笔记本,以及其他类似的 JavaScript 电子表格应用程序。创建自定义电子表格、高级网格、仪表板、报告和 数据输入 具有综合 API 的表单
利用强大的高速 计算引擎 用于最复杂的计算,导入和导出要求最苛刻的 Excel .xlsx 电子表格,全力支持 反应, 视图, 有角的, 和打字稿,包括对屏幕阅读器的基本兼容性支持以及适用于 Windows 的 NVDA、Windows 讲述人和 OS X 屏幕阅读器的 VoiceOver 的 ADA 合规性。

新文件格式

我们添加到 SpreadJS 的最令人兴奋的新功能之一是一种新的改进文件格式。这种新的文件类型可以大大提高导入大型 Excel 文件的性能,同时在保存时创建一个更小、优化更好的文件。

新的 .sjs 文件格式绕过以前需要先导出到 SSJSON,现在直接将数据转换为模型。生成的数据被保存到一个压缩的 .sjs 文件中,其中包含较小的 SSJSON 文件,使其类似于 Excel 自身的 XML 结构。这种格式现在使 ExcelIO 进程更快、更小。

表格增强功能

SpreadJS Tablesheet 是一个独立的高性能 DataTable,在 v16 中获得了更多功能:

数据管理器中的层次结构

TableSheets 现在支持源数据中的层次结构数据。这包括 4 种不同类型的记录数据:

  • 属性“id”和“parentId”

  • 指示层次结构级别的属性

  • 包含分层子项的属性

  • 可以使用自定义函数解析为层次结构的主键

还添加了层次结构操作,使用户能够:

  • 升级/降级记录

  • 向上/向下移动记录

  • 在之后/之前或之上/之下插入记录

  • 删除一条记录

  • 展开/折叠所有记录级别或特定级别

  • 排序/过滤记录

数据管理器字段名称映射

数据管理器的数据源模式现在支持为列设置别名,允许数据源的前端和后端之间使用不同的名称。这可以通过在向数据管理器添加视图时简单地设置“标题”属性来完成。

设计师改进

我们对 SpreadJS 的设计器组件进行了一些改进,包括本博客前面 TableSheet 部分的一些相应功能:

TableSheet 模板和面板增强功能

当 TableSheet 最初被添加到 SpreadJS 时,我们在设计器中包含了一个面板来管理 TableSheets。在列列表中处理关系数据时,现在可以折叠特定列。此外,可以单击关系列以显示该特定列的详细信息。此功能也适用于在工作簿中选择 TableSheet 时显示在 Designer 右侧的 TableSheet 面板。其他功能包括分组和拖动字段。

TableSheet 层次结构数据

Designer 中 TableSheet 实现的另一个增强功能是在数据源的“列”选项卡中添加了对分层数据的支持。列现在有一个单独的“层次结构”部分,其中包含可以定义的类型、汇总公式和大纲列:

这些选项可以按如下方式使用:

  • 类型 - 定义为 Parent、ChildrenPath 或 Level

  • 汇总公式 - 输入指定列的层级汇总公式

  • Oultine Column - 自定义列的显示,指定是否包含复选框、图像或指示器

选择级查找/替换

在大型工作表中搜索特定数据时,您可能只想搜索特定的单元格选择。在 v16 中,我们添加了对查找和替换功能的增强,以仅在特定的单元格选择中进行搜索。

格式面板

新的格式窗格按钮让用户可以轻松打开形状、图片和图表的现有侧面板。

计算增强

无效的公式输入行为和样式

SpreadJS 自动识别无效的公式,并在用户尝试提交时显示错误。但是,如果公式无效,它也会被删除,并且在此版本中,我们增强了此行为以将公式保留在单元格中,但如果 AllowInvalidFormula 选项设置为 true,则将其转换为文本:

spread.options.allowInvalidFormula = true;

通过此增强功能,我们还专门为无效公式添加了一个单元格状态。这意味着您可以标记具有无效公式的单元格并将样式应用于这些特定单元格。

形状增强

类似 Excel 的表单控件

为了更轻松地在 SpreadJS 中创建您自己的表单,我们添加了一些基于 SpreadJS 形状的有用的类似 Excel 的表单控件。这些控件包括:

  • 纽扣

  • 微调按钮

  • 列表框

  • 组合框

  • 复选框

  • 选项按钮

  • 组框

  • 标签

  • 滚动条

通过指定表示控件位置和大小的 addFormControl 方法的 left、top、width 和 height 参数,可以将这些控件放置在工作表中的任何位置。一旦设置了位置和大小并创建了控件,它就可以绑定到特定的单元格,例如上面屏幕截图中的年龄旋转按钮。此外,还添加了一个名为 FormControlValueChanged 的​​新事件,以便在表单控件的值发生变化(UI 操作、API 调用或关联的单元格发生变化)时触发。

调整大小增强

开发人员现在可以限制或允许不同类型的形状大小调整。这些类型包括纵横比、水平和垂直调整大小,可以使用 API“allowResize”进行简单设置。

Shift+鼠标调整行为

当 allowResize 在工作表中设置为 true 时,可以在使用鼠标调整形状大小时按住 Shift 键以保持形状的纵横比。

工作簿改进

我们对 SpreadJS 的基本工作簿功能做了一些增强:

复制/剪切取消事件

复制和剪切事件已得到增强以提供剪贴板的当前状态。这有助于在复制/剪切/粘贴过程的某些阶段实现特定功能,并向以下事件添加额外的参数:

  • 剪贴板改变

  • 剪贴板粘贴

  • 剪贴板粘贴

小区装修风格

我们的样式实现已得到增强,包括单元格装饰。这包括:

  • 椭圆颜色

  • 角折颜色

  • 图标(位置、图标和颜色)

数据验证的自定义样式

数据验证可用于将数据标记为不正确或防止输入特定数据。可以设置该验证的样式,但对于此版本,我们添加了为数据验证设置自定义样式的功能。

在 EditEnding 和 EditEnded 事件中取消输入

EditEnding 和 EditEnded 事件发生在用户在单元格中输入或更改数据之后。在 v16 版本中,我们添加了一个取消参数,以便开发人员可以在需要时取消编辑。

v16 中引入的最大和最重要的功能之一是新的 SpreadJS 文件格式,它可以更快地处理大文件,并在保存时生成更小的文件大小。此博客将详细介绍此新功能的工作原理。

基本功能

随着越来越多的客户使用 SpreadJS,我们看到客户正在使用更大更复杂的文件。这些较大的文件带来了对性能的关注,我们试图用一种新的文件格式来解决这个问题。这种新的 .sjs 格式是一个压缩文件,其中包含多个较小的 JSON 文件,类似于 Excel XML 结构。

这种新结构允许您支持大型 Excel 文件并将它们导出为更小的尺寸。另外,如果一个Excel文件中有很多工作表,您可以快速只加载需要的工作表。要使用这种新格式,您不再需要导入 ExcelIO 模块,而是导入 IO 插件:

<script src="plugins/gc.spread.sheets.io.xxx.js"></script>
复制

这种新格式可以像 SpreadJS SSJSON 文件一样导入和导出,一旦加载到 SpreadJS 中,它就可以作为 XLSX 文件导出到 Excel。需要注意的是,这种新格式是可选的,您仍然可以使用 .SSJSON 文件。如果您想要更小的文件大小和更快的性能,那么建议使用 .SJS 文件格式。

除了导出到转换为工作表的 Excel 之外,还支持使用 TableSheets 打开和保存新文件格式。

性能提升

在内部,此更改导致更快的性能和更小的文件大小,因为它消除了导出到 SSJSON 然后转换为 Excel 模型的中间点。相反,SpreadJS 现在会将数据放在一个压缩的 .SJS 文件中,其中包含一些较小的 SSJSON 文件,类似于 Excel XML 结构。

以前,ExcelIO Import 和 Export 本质上依赖于特殊的 JSON 和 Excel 模型来转换为 Excel XML。使用这种新格式,SpreadJS 转换为 .SJS,这是一种类似于 Excel XML 的特殊 JSON 模式,因此可以直接转换:

以下是比较 .SSJSON 和 .SJS 示例文件的一些性能数据:

第一点是打开和保存文件所花费的时间:

打开文件的时间(以毫秒为单位)

文件

v15.2.5 (.SSJSON)

v16.0.0 使用默认选项导入 (.SJS)

v16.0.0 使用惰性打开模式导入 (.SJS)

包含 500 万个值的文件

16959

11983

7148

测试文件 1

92778

18904

4004

测试文件 2

59290

27001

3554

测试文件 3

69053

25145

2103

保存文件的时间(以毫秒为单位)

文件

v15.2.5 (.SSJSON)

v16.0.0 使用默认选项导出 (.SJS)

v16.0.0 使用惰性选项导出 (.SJS)

包含 500 万个值的文件

26588

9016

3307

测试文件 1

18269

10628

1057

测试文件 2

14318

4037

733

测试文件 3

26701

17191

2216

除了时间改进外,新文件格式还包括文件大小改进:

导出文件大小

文件

v15.2.5 (.XLSX)

v15.2.5 (.SSJSON)

v16.0.0 默认选项 (.SJS)

v16.0.0 (.XLSX)

1000 万个值:100 个工作表,每个工作表 1000 行和 100 列,包含日期/数字/字符串/公式

31MB

267 兆字节

3.36 MB

31MB

1000 万个值:100 张 1000 行,每张 100 行,每个单元格都有一个设置样式

崩溃(最多只支持 40 列)

崩溃(最多只支持 40 列)

3.07 MB

29.5 兆字节

500万个值

15.71 MB

150.19 兆字节

1.90 MB

15.71 MB

测试文件 1

4.80 MB

68.25 兆字节

0.52MB

2.73 MB

测试文件 2

1.44MB

19.56 MB

0.31MB

0.97 MB

测试文件 3

6.66 MB

81.31 兆字节

2.86 MB

5.75 MB

使用选项导出文件大小

文件

v15.2.5 (.XLSX)

v15.2.5 (.SSJSON)

v16.0.0 默认选项 (.SJS)

v16.0.0 指定选项 (.SJS)

300万个未使用的自定义名称:100张每张30,000个自定义名称

7.92 MB

176MB

8.09 MB

92.0 KB

500 万种样式,但只有 50k 值

9.96 MB

493兆字节

1.08MB

140 KB

选项

在保存或打开新的 SJS 文件时,这种新文件类型有几个不同的选项可供选择。这些包括:

保存选项

  • include绑定源
  • 包含样式
  • 包含公式
  • 另存为视图
  • includeAutoMergedCells
  • includeCalcModelCache
  • 包括未使用的名字
  • includeEmptyRegionCells

打开选项

  • 包含样式
  • 包含公式
  • 全重新计算
  • 动态引用
  • 按需计算
  • includeUnusedStyles
  • 开放模式
    • 正常 - 打开文件时,UI 和 UI 事件可以刷新,并会在特定时间点响应。
    • Lazy - 打开文件时,只直接加载活动工作表,其他工作表仅在使用时加载。
    • 增量 - 打开文件时,UI 和 UI 事件可以刷新并立即响应。

还有用于导入和导出不同文件类型选项的特定选项:

  • ImportXlsx选项
  • ImportSSJson选项
  • ImportCsvOptions
  • ExportXlsx选项
  • ExportSSJson选项
  • 导出 Csv 选项

设计师

文件 > 保存菜单下的设计器(组件和桌面)也支持这种新文件格式:

您也可以打开这种新文件格式:

此外,旧文件格式可用于导入和导出,但已过时且已弃用:

SpreadJS 允许用户在最短的时间内打开和保存大文件,并以不同的文件格式导出或导入,如 Excel、SSJSON 和 CSV。SpreadJS 提供了gc.spread.sheets.io.xxx.js插件,可以执行不同格式的文件打开、保存、导入、导出等操作。

GC.Spread.Sheets.Workbook类针对不同的文件操作提供了以下方法。

方法

描述

打开

加载一个 SpreadJS 文件。

节省

保存 SpreadJS 文件。

出口

将文件导出为 Excel、SSJSON 或 CSV 格式。

进口

导入 Excel、SSJSON 或 CSV 或 JavaScript 格式的文件。

在以下部分中,我们将详细了解不同的文件操作。

打开文件

您可以使用open方法在 Spread 中加载 SpreadJS 文件。此方法提供以下参数:

  • file blob:它代表压缩的电子表格数据文件。

  • successCallBack:此函数在加载文件完成并接受 JSON 作为参数时提供成功回调。

  • errorCallBack:该函数在文件加载返回错误时给出错误回调。

  • openOptions:此参数继承自GC.Spread.Sheets.OpenOptions Typedef

    不同的打开选项如下:

选项

描述

包含样式

指示加载时是否可以包含样式。默认情况下,它是真实的。

包含公式

指示加载时是否可以包含公式。默认情况下,它是真实的。

全重新计算

表示加载JSON数据后是否可以包含计算。默认情况下,它是真实的。

动态引用

指示是否可以使用动态引用计算函数。默认情况下,它是真实的。

按需计算

指示是否仅在需要时才计算公式。默认情况下,它是真实的。

includeUnusedStyles

指示在将 Excel XML 文件转换为 JSON 时是否可以包含名称样式。默认情况下,它是真实的。

开放模式

继承自GC.Spread.Sheets.OpenMode枚举,指定打开方式是normal、lazy还是incremental。默认情况下,这是正常的。

进步

继承自GC.Spread.Sheets.ProgressFunctionType Typedef,是每个打开模式的进度回调函数。

以下代码实现显示了如何执行打开文件操作:

//This example uses the open method.
//Get file blob.
var file = document.getElementById("fileInput").files[0];
// import
spread.open(file, function () {// success callback to do something
}, function (e) {console.log(e); // error callback
}, {lazyLoad: true,includeFormulas: false,includeStyles: false
});

保存文件

您可以使用save方法保存 SpreadJS 文件,该方法提供以下参数:

  • successCallBack:当 SpreadJS 文件完全保存并接受 Blob 作为参数时,此函数会提供成功回调。

  • errorCallBack:该函数在保存 spreadJS 文件返回错误时给出错误回调。

  • saveOptions : 继承自GC.Spread.Sheets.SaveOptions Typedef,提供保存选项。

    下面给出了不同的保存选项:

保存选项

描述

include绑定源

指示在保存文件时是否可以包含绑定源。默认情况下,值为 false。

包含样式

指示保存文件时是否可以包含样式。默认情况下,值为 true。

包含公式

指示保存文件时是否可以包含公式。默认情况下,值为 true。

另存为视图

指示在保存文件时是否可以包含样式。默认情况下,值为 true。

includeAutoMergedCells

指示在保存文件时是否可以包含自动合并的单元格。默认情况下,值为 false。

includeCalcModelCache

表示保存文件时是否可以包含计算的额外数据。默认情况下,值为 true。

包括未使用的名字

指示保存文件时是否可以包含未使用的自定义名称。默认情况下,值为 true。

includeEmptyRegionCells

指示是否可以在使用的数据范围之外包含任何空单元格。默认情况下,值为 true。

以下代码实现显示了如何执行保存文件操作:

var fileName = "fileNamehere.sjs";
spread.save(function (blob) {// save blob to a filesaveAs(blob, fileName);
}, function (e) {console.log(e);
}, {includeUnusedNames: false,includeEmptyRegionCells: false
});

导出文件

您可以在 Spread 中将文件导出为 Excel、SSJSON 或 CSV 格式。

导出方法提供以下参数:

  • successCallBack:此函数在文件导出完成并接受 Blob 作为参数时提供成功回调。

  • errorCallBack:该函数在导出文件返回错误时给出错误回调。

  • saveOptions : 继承自GC.Spread.Sheets.ExportOptions Typedef,提供导出选项。

下面给出了不同的导出选项:

选项

描述

文件选项

继承自GC.Spread.Sheets.FileType Typedef,FileOptions提供不同的文件格式。

导出 Csv 选项

继承自 GC.Spread.Sheets.ExportCsvOptions,ExportCsvOptions 提供了将文件导出为 CSV 格式的选项。

ExportSSJson选项

继承自 GC.Spread.Sheets.ExportSSJsonOptions,ExportCsvOptions 提供了将文件导出为 SSJSON 格式的选项。

ExportXlsx选项

继承自 GC.Spread.Sheets.ExportXlsxOptions,ExportCsvOptions 提供了将文件导出为 Excel 格式的选项。

代码实现显示了如何执行导出文件操作:

var fileName = "fileNamehere.ssjson";
spread.export(function (blob) {// save blob to a filesaveAs(blob, fileName);
}, function (e) {console.log(e);
}, {fileType: GC.Spread.Sheets.FileType.ssjson,includeBindingSource: true
});

导入文件

您还可以在 Spread 中导入 Excel、SSJSON 或 CSV 格式的文件。

导入方法提供以下参数:

  • file:要导入的 SSJSON 或 CSV 或 Excel 文件。

  • successCallBack:此函数在文件导入完成时提供成功回调。

  • errorCallBack:此函数在导入文件返回错误时给出错误回调。

  • importOptions:继承自 GC.Spread.Sheets.ImportOptions Typedef,提供导入选项。

下面给出了不同的导入选项:

选项

描述

文件选项

继承自GC.Spread.Sheets.FileType Typedef,FileOptions提供不同的文件格式。

ImportCsvOptions

继承自 GC.Spread.Sheets.ImportCsvOptions,ImportCsvOptions 提供从 CSV 格式导入文件的选项。

ImportSSJson选项

继承自 GC.Spread.Sheets.ImportSSJsonOptions,ImporSSjsonOptions 提供了从 SSJSON 格式导入文件的选项。

ImportXlsx选项

继承自 GC.Spread.Sheets.ImportXlsxOptions,ImportXlsxOptions 提供从 Excel 格式导入文件的选项。

代码实现显示了如何执行导入文件操作:

//Get file blob.
var file = document.getElementById("fileInput").files[0];
// import
spread.import(file, function () {// success callback to do something
}, function (e) {console.log(e); // error callback
}, {fileType: GC.Spread.Sheets.FileType.excel
});

SpreadJS 16.0.3 Crack相关推荐

  1. SpreadJS 16.1 EN + SpreadJS 16.1 CN Crack

    添加仪表图以及对受密码保护的工作表的支持. 2023 年 5 月 4 日 - 16:24新版本 特征 数据透视表增强 单个字段的小计选项- 通过为单个字段添加小计选项增强了数据透视表支持.以前,Spr ...

  2. SpreadJS 16.0 中文版在线电子表设计预览EXCEL-Crack

    SpreadJS 纯前端表格控件 - V16.0 新特性--内容摘自互联网 新文件结构是 SpreadJS 近几个版本中最为重要的架构级更新.这种新文件结构可以大大提高导入大型 Excel 文件的性能 ...

  3. SpreadJS 16.0.1 中英版 SpreadJS-EN-CN

    SpreadJS具有 500 多个 Excel 函数的完整 Angular 电子表格解决方案 快速提供真正类似 Excel 的电子表格体验 - 对 Excel 零依赖.创建财务报告和仪表板,预算和预测 ...

  4. 在线Excel绝配:SpreadJS 16.1.1+GcExcel 6.1.1 Crack

    前端:SpreadJS 16.1.1 + 后端: GcExcel 6.1.1 = 全能 SpreadJS 16.1.1此版本的产品中包含以下功能和增强功能. 添加了各种输入掩码样式选项. 添加了在保护 ...

  5. Vue 组件库 HeyUI@1.16.0 更新日志

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   HeyUI :一个基于Vue.js的高质量UI组件库 新版本v1.16.0 1.Col 重命名为 Cell 其实一 ...

  6. nginx 稳定版 1.16.0 发布,支持动态加载 SSL 证书

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   nginx 1.16.0 稳定版已发布,包含来自 1.15.x 主线分支的新功能和错误修复: 针对流模块(stream module)中的 ...

  7. 智能实验室-杀马(Defendio) 4.16.0.840

    怎样获取最新版本? □智能更新: 打开杀马(Defendio),按F9键,或者点左边的服务->智能更新 □全新下载: 杀马(Defendio):http://files.cnblogs.com/ ...

  8. Log4j2又爆雷!2.16.0存在DOS攻击风险,升级到2.17.0可解决!

    本以为,经过上周的2.16.0版本升级,Log4j2的漏洞修复工作,大家基本都要告一段落了. 万万没想到,就在周末,Log4j官方又发布了新版本:2.17.0 该版本主要修复安全漏洞:CVE-2021 ...

  9. Log4j2再发新版本2.16.0,完全删除Message Lookups的支持,加固漏洞防御!

    昨天,Apache Log4j 团队再次发布了新版本:2.16.0 ! 2.16.0 更新内容 默认禁用JNDI的访问,用户需要通过配置log4j2.enableJndi参数开启 默认允许协议限制为: ...

最新文章

  1. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2- “Tab”标签新增可“最大化”显示功能...
  2. 非常美妙的图片,呵呵
  3. JavaScript实现返回数字的二进制表示中使用的位数bitLength算法(附完整源码)
  4. spring整合dubbo和springboot整合dubbo,实现服务暴露区别
  5. java快捷键 --_Java中的快捷方式“或分配”(| =)运算符
  6. python去重复记录_python如何处理重复值数据?
  7. Winform开发框架之终极应用 - 伍华聪 - 博客园
  8. 相机标定原理介绍(一)
  9. 云计算机平台搭建,搭建云计算平台的步骤
  10. 几种流行Webservice框架
  11. 计算机word基础操作知识点,计算机WORD知识点整理
  12. 《七周七并发模型》作者Paul Butcher、阿里云研究员余锋(褚霸)——QCon北京2016前瞻...
  13. 2021年湖北省区块链技术应用创新创业大赛已正式启动,欢迎报名参赛
  14. STM32的USART3(PC10,PC11)异常,USART3_TX(PC10)持续低电平(0V)
  15. “ODM OEM OBM的区别”网址汇总
  16. linux dd if提示是目录,Linux dd 命令详解
  17. Java理论题(2)——简答题
  18. 后疫情时代 亿联网络的攻与守
  19. 国内国外最好的java开发论坛及站点
  20. 工业革命的秋之涟漪(三):飞桨,划行在智能经济之海

热门文章

  1. 关于while(t--)和while(--t)
  2. 短地址,短URL服务 - 百度,TinyURL
  3. 因易用性导致的TongWeb使用误区
  4. 盘点5个最佳GIS软件
  5. ATIPTA和CdnCtr
  6. Linux系统下的10款非常优秀的POS开源软件
  7. 【计算机毕业设计选题】10套易过的精品毕设项目分享(源码+论文)
  8. anaconda python下载math库_Anaconda下载及安装及查看安装的Python库用法
  9. 音视频 — 图像基础
  10. mysql触发器联立删除_mysql触发器删除实例1