指南Univer Sheets教程从 Luckysheet 迁移

从 Luckysheet 迁移到 Univer

我们新设计的 Univer,相比较 Luckysheet,从架构、数据结构以及 API 等方面做了很大改进设计,所以 Luckysheet 已经无法 1 比 1 迁移到 Univer。

不过基本的数据类型或者 API 都可以在 Univer 中找到,鉴于此,如果你仍然想要将 Luckysheet 的数据要迁移到 Univer,可以根据自己的需求,有针对性的做一些适配工作。

这里给大家提供一个迁移指导方案。

分析

配置

转换最核心的工作是对工作簿配置、工作表配置以及单元格信息进行适配,可以参考 Univer 的接口和 Luckysheet 的数据结构。

UniverLuckysheet
工作簿配置IWorkbookData整体配置 config
工作表配置IWorksheetData工作表配置 sheet
单元格ICellData单元格 cell

插件

Luckysheet 的初始化通过一个 JSON 配置来完成,而 Univer 做了拆分,将增强功能用插件来实现,所以部分功能需要分散到插件配置,比如

UniverLuckysheet
数字格式numfmt,通过单元格样式配置单元格值格式:cell.ct
浮动图片floating imagesimage
查找 & 替换find replace-
筛选filterfilter
排序sortfilter(包含在筛选中)
数据透视表pivot tablepivotTable
数据验证data validationdataverification
条件格式conditional formattingluckysheet_conditionformat_save
评论 / 批注thread comment单元格批注:cell.ps
打印print打印插件
导入导出import exportLuckyexcel 导入 & 导出,或者社区方案
协同编辑collaborationLuckysheetServer

API

对于 API 部分,Luckysheet API 统一挂载在 window.luckysheet,使用 Univer API 有两种方式

  • 调用封装好的 Facade API
  • 采用 Univer 的依赖注入系统,将插件的 service 能力注入到当前 Class 中,参考我们的 插件教程 可以轻松的接入 Univer 依赖注入系统

总结

针对部分常用的基础数据,可以参考下 Migrate Luckysheet Demo,再根据项目需求做定制。

如果 Univer 现有功能不满足你的需要,还可以自行开发插件进行适配。

常见问题

Luckyexcel 的 transformExcelTolucky 方法如何迁移?

Luckyexcel 中提供了 transformExcelTolucky 方法,可以将 Excel 文件转换为 JSON 数据,对应的 Univer 中可以使用 Facade APIimportXLSXToSnapshot 方法来实现。

如果需要转换一个在线的 Excel 文件,Luckyexcel 中提供了 transformExcelToLuckyByUrl 方法,Univer 中没有直接提供转换在线 Excel 文件的方法,但是可以通过浏览器的 fetch API 将在线 Excel 文件下载到本地,然后再调用 importXLSXToSnapshot 方法来实现。参考如何打开或编辑一个 Excel 文件的 URL 地址?