天天看點

架構級更新!SpreadJS V16.0重磅釋出,「新檔案結構」提升性能50%

作者:葡萄城GrapeCity

近日,SpreadJS v16.0正式釋出,推出了 SpreadJS 「新檔案結構」,是近幾個版本中最為重要的架構級更新,不僅大幅減少了文檔體積,更是将導入導出性能平均提升了50%,為未來的協同編輯打下了架構級的基礎支撐。想了解這一新特性的細節,請繼續閱讀以下内容:

基本功能

随着越來越多的客戶使用 SpreadJS,我們收到了越來越多的大資料量複雜格式檔案的使用者案例。這些大的檔案給産品性能帶來了新的挑戰。SpreadJS v16.0版本中開始正式采用一種新的檔案格式來解決這個問題。這種新的 .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 之外,SpreadJS還支援使用 集算表(TableSheets) 打開和儲存新檔案格式。

性能提升

新檔案格式的引入,讓 SpreadJS 擁有了更高的導入導出性能和更小的檔案體積,因為它摒棄了導出到 SSJSON 然後轉換為 Excel 模型的方式,直接将資料添加一個壓縮的 .SJS 檔案中,其中包含一些較小的 .SSJSON 檔案,類似于 Excel XML 結構。

以前,ExcelIO Import 和 Export 本質上依賴于特殊的 JSON 和 Excel 模型來轉換為 Excel XML。使用這種新格式,SpreadJS 轉換為 .SJS,這是一種類似于 Excel XML 的特殊 JSON 模式,是以可以直接轉換:

架構級更新!SpreadJS V16.0重磅釋出,「新檔案結構」提升性能50%

以下是比較 .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 列,包含日期/數字/字元串/公式 31 MB 267 MB 3.36 MB 31 MB
1000 萬個值:100 張 1000 行,每張 100 行,每個單元格都有一個單獨樣式 頁面崩潰(最多隻支援 40 列) 頁面崩潰(最多隻支援 40 列) 3.07 MB 29.5 MB
500萬值 15.71 MB 150.19 MB 1.90 MB 15.71 MB
測試文檔1 4.80 MB 68.25 MB 0.52 MB 2.73 MB
測試文檔2 1.44 MB 19.56 MB 0.31 MB 0.97 MB
測試文檔3 6.66 MB 81.31 MB 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 176 MB 8.09 MB 92.0 KB
500 萬種樣式,但隻有5萬個值 9.96 MB 493 MB 1.08 MB 140 KB

導入導出選項

在儲存或打開新的 .SJS 檔案時,這種新檔案類型有幾個不同的選項可供選擇。這些包括:

導出選項

  • includeBindingSource 是否包含綁定源
  • includeStyles 是否包含樣式
  • includeFormulas 是否包含公式
  • saveAsView 是否忽略格式字元串
  • includeAutoMergedCells 是否包括自動合并的單元格
  • includeCalcModelCache 是否包括計算引擎緩存
  • includeUnusedNames 是否包括未被使用的命名資訊
  • includeEmptyRegionCells 是否包括空白區域

導入選項

  • includeStyles 轉換時是否包含樣式
  • includeFormulas 轉換時是否包含公式
  • fullRecalc 轉換後是否執行計算引擎重算
  • dynamicReferences 轉換時是否以動态引用模式執行計算
  • calcOnDemand 轉換後是否按需計算公式
  • includeUnusedStyles 轉換時是否包括未被使用的命名資訊
  • openMode 導入模式Normal - 打開檔案時,可以重新整理UI和UI事件,會在特定時間點響應.Lazy - 打開檔案時,隻直接加載活動的工作表,其他工作表隻有在使用時才加載.Incremental - 打開檔案時,可以重新整理UI和UI事件,并會立即響應.

還有用于導入和導出不同檔案類型選項的特定選項:

  • ImportXlsxOptions 導入Xlsx檔案選項
  • ImportSSJsonOptions 導入SSJson檔案選項
  • ImportCsvOptions 導入Csv檔案選項
  • ExportXlsxOptions 導出Xlsx檔案選項
  • ExportSSJsonOptions 導出SSJson檔案選項
  • ExportCsvOptions 導出Csv檔案選項

設計器

檔案 > 儲存菜單下的設計器(元件和桌面)也支援這種新檔案格式:

架構級更新!SpreadJS V16.0重磅釋出,「新檔案結構」提升性能50%

您也可以直接在設計器中打開這種新檔案格式:

架構級更新!SpreadJS V16.0重磅釋出,「新檔案結構」提升性能50%

此外,舊檔案格式可用于導入和導出,但已過時且已棄用:

架構級更新!SpreadJS V16.0重磅釋出,「新檔案結構」提升性能50%
架構級更新!SpreadJS V16.0重磅釋出,「新檔案結構」提升性能50%

如果您想直接體驗這一新特性,請通路SpreadJS官網,學習指南和線上表格編輯器線上體驗,直覺感受 SpreadJS V15.0 與 V16.0 版本導入 Excel 的性能提升。

繼續閱讀