Luckysheet 停止维护!再想开发【腾讯文档】可咋办?

开发 前端
Univer 的架构较为复杂,为了使开发者更容易上手,官方提供了 Facade API。这个 API 是对 Univer 第一方插件的封装,简化了接口的使用,使开发者能够更轻松地操作和集成 Univer。

前两天有同学问:“Sunday 老师,我们公司现在要做一个类似于 腾讯文档 的在线 excel 编辑应用,还得支持多人协作。这玩意可咋弄啊?”

这不巧了吗?之前我正好写过一篇类似的文章:开发一个腾讯文档要多久?借助 Luckysheet,仅需 3 分钟! 就把这篇文章推给该同学,并信誓旦旦的告诉他,很容易!

可是,该同学看完之后,就给我来了个暴击:“Luckysheet 已经停止维护了......”

图片图片

颇有一种 “珍藏了好久的零食,刚想拿出来招待客人,发现已经过期了” 的尴尬...

不过,问题还是得解决呢,所以我就给他推荐了另外一个 文档协同库 Univer

图片图片


Github 地址:https://github.com/dream-num/univer

什么是 Univer

Univer 是一个集成

  • 电子表格(Excel)
  • 文本文档(Doc)
  • 演示幻灯片(PPT)

三大核心文档类型的企业级协同平台。它不仅支持多人协作,还提供了高效的文档管理和数据处理能力。无论是个人办公还是团队协作,Univer 都能帮助你实现智能化的文档与数据管理。

核心特性

Univer 提供了一系列功能丰富、灵活定制的核心特性,帮助开发者根据需求定制和扩展功能。下图展示了 Univer 的主要特性和组件架构,能够为企业提供稳定高效的工作环境。

图片图片

基本概念

在使用 Univer 之前,了解其基本概念非常重要。Univer 的核心体系是围绕四个重要概念构建的,它们分别是:插件、快照、命令和 Facade API。

插件(Plugin)

Univer 的功能通过插件模块来实现,每个插件负责特定功能或能力的提供。例如:

  • @univerjs/sheets-filter 插件为电子表格提供了筛选功能
  • @univerjs/engine-render 插件则负责渲染能力。

我们可以根据实际需求灵活组合和选择插件,这种插件化的设计不仅让你能够定制化 Univer,还能避免加载不必要的功能代码。

此外,Univer 还允许开发者通过编写自己的插件来扩展功能,满足特定的业务需求。

相关的参考文档:

  • Univer 架构设计方案
  • 如何编写插件

快照(Snapshot)

在 Univer 中,快照是文档的保存格式,类似于“文档的快照”状态。每种文档类型都有自己的快照格式:

  • 电子表格的快照格式是 IWorkbookData
  • 单元格数据结构 介绍了单元格的数据结构
  • 文档的快照格式是 IDocumentData

具体的快照结构可以参考官方的 API 文档。快照不仅存储了文档的数据,也支持资源的存储,如图片、附件等。


注意:快照仅用于存储数据,并不会反映文档的实时状态。它是数据持久化的中介,而在运行时,文档的内容和状态需要通过其他方式来实时更新。

命令(Command)

Univer 的所有数据修改都依赖于 命令。通过命令机制,Univer 能够追踪文档的变化,支持撤销、重做、协同编辑等功能。命令不仅使得数据修改过程可追溯,还能处理不同功能之间复杂的关联逻辑。这样,开发者能够更加精确地控制文档的状态,确保数据的正确性与一致性。

如果你想要通过命令修改文档中的数据,可以参考如何查找命令 ID 的相关教程:查找命令 ID。在使用 Facade API 修改文档数据时,系统会自动为你准备命令参数并执行命令,从而简化操作流程。

Facade API

Univer 的架构较为复杂,为了使开发者更容易上手,官方提供了 Facade API。这个 API 是对 Univer 第一方插件的封装,简化了接口的使用,使开发者能够更轻松地操作和集成 Univer。通过 Facade API,你可以快速调用常见功能,而无需直接与底层的插件或命令打交道。

然而,简单性总是有代价的。如果你的需求更为复杂,或者需要更高的自定义能力,可能需要直接操作更底层的 API 来实现功能。

责任编辑:武晓燕 来源: 程序员Sunday
相关推荐

2023-11-08 13:55:27

2024-11-14 13:16:58

2017-11-09 11:03:06

AMDIntelNVIDIA

2022-06-02 10:58:54

架构微服务Spring

2025-01-09 09:05:15

2021-12-28 14:09:35

腾讯企业QQ停止服务

2023-09-08 10:21:21

2013-04-15 09:02:43

JavaScriptJS

2010-12-15 11:07:27

2021-04-13 15:09:16

CentOS6EOL项目

2023-09-25 12:18:48

2021-02-22 10:30:23

AI 芯片算法

2021-09-13 18:09:59

腾讯文档业务云计算

2016-02-19 10:31:52

云计算云应用paas

2021-08-08 08:23:45

SQL代码编程

2025-03-27 12:18:13

vuex存储持久化

2010-12-22 09:31:13

PHP 5.2

2023-10-17 09:19:34

开发Java
点赞
收藏

51CTO技术栈公众号