从 Luckysheet 迁移到 Univer
我们新设计的 Univer,相比较 Luckysheet,从架构、数据结构以及 API 等方面做了很大改进设计,所以 Luckysheet 已经无法 1 比 1 迁移到 Univer。
不过基本的数据类型或者 API 都可以在 Univer 中找到,鉴于此,如果你仍然想要将 Luckysheet 的数据要迁移到 Univer,可以根据自己的需求,有针对性的做一些适配工作。
这里给大家提供一个迁移指导方案。
分析
配置
转换最核心的工作是对工作簿配置、工作表配置以及单元格信息进行适配,可以参考 Univer 的接口和 Luckysheet 的数据结构。
Univer | Luckysheet | |
---|---|---|
工作簿配置 | IWorkbookData | 整体配置 config |
工作表配置 | IWorksheetData | 工作表配置 sheet |
单元格 | ICellData | 单元格 cell |
插件
Luckysheet 的初始化通过一个 JSON 配置来完成,而 Univer 做了拆分,将增强功能用插件来实现,所以部分功能需要分散到插件配置,比如
Univer | Luckysheet | |
---|---|---|
数字格式 | numfmt,通过单元格样式配置 | 单元格值格式:cell.ct |
浮动图片 | floating images | image |
查找 & 替换 | find replace | - |
筛选 | filter | filter |
排序 | sort | filter(包含在筛选中) |
数据透视表 | pivot table | pivotTable |
数据验证 | data validation | dataverification |
条件格式 | conditional formatting | luckysheet_conditionformat_save |
评论 / 批注 | thread comment | 单元格批注:cell.ps |
打印 | 打印插件 | |
导入导出 | import export | Luckyexcel 导入 & 导出,或者社区方案 |
协同编辑 | collaboration | LuckysheetServer |
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 API 的 importXLSXToSnapshot
方法来实现。
如果需要转换一个在线的 Excel 文件,Luckyexcel 中提供了 transformExcelToLuckyByUrl
方法,Univer 中没有直接提供转换在线 Excel 文件的方法,但是可以通过浏览器的 fetch API 将在线 Excel 文件下载到本地,然后再调用 importXLSXToSnapshot
方法来实现。参考如何打开或编辑一个 Excel 文件的 URL 地址?。