指南Univer Sheets开始使用使用 Facade API

面板(Facade) API

为了应对复杂的需求,Univer 的架构也较为复杂,这可能会给使用造成一些困难,为此我们提供了一个更加简单易用的面板 API(Facade API)。

本小节将详细介绍如何在应用中添加 Facade API,后续的 “功能” 章节中,我们将列出每个功能的主要 Facade API,如果你想查看所有的 Facade API,请参考各个插件的 API 文档

💡

从 0.5.0 开始版本,@univerjs/facade 包被标记为废弃,并计划在 0.6.0 版本中移除。如果你是 0.5.0 之前版本的用户,请参考下文中的 “高级安装” 部分修改引入 Facade API 的方式。

⚠️

注意 Univer 当中部分 API 是异步的,特别是修改数据的 API,它们大多会返回一个 Promise。如果你需要再修改数据后立即获取数据,请使用 await 或者 .then(),否则可能会获取到不符合预期的结果。想要了解具体有哪些 API 会返回 Promise,请查看对应的 API 参考手册。

Presets 安装

如果你使用 Presets,它会自动引入所含功能的 Facade API,并在你创建 Univer 实例时返回一个对应的 Facade API 实例 univerAPI,直接使用即可。

高级安装

安装

从 0.5.0 版本开始,Facade API 的实现被分散到各个插件中,并挂载到全局的 Facade API 根对象上,这意味着对于那些提供了 Facade API 的插件,你需要引入他们对应的 Facade API 实现。

我们会在每个功能的页面介绍它是否提供了 Facade API 实现,你需要按照你实际使用的功能来引入它们对应的 Facade API:

import '@univerjs/sheets/facade';
import '@univerjs/ui/facade';
import '@univerjs/docs-ui/facade';
import '@univerjs/sheets-ui/facade';
 
import '@univerjs/sheets-data-validation/facade';
import '@univerjs/engine-formula/facade';
import '@univerjs/sheets-filter/facade';
import '@univerjs/sheets-formula/facade';
import '@univerjs/sheets-numfmt/facade';
import '@univerjs/sheets-hyper-link-ui/facade';

如果你使用了 Univer 的高级功能,也不需要再使用 @univerjs-pro/facade,引入高级功能的 Facade API 的方式现在与引入开源功能的方式相同,例如:

import '@univerjs-pro/sheets-pivot/facade';
import '@univerjs-pro/exchange-client/facade';

使用

Facade API 是对 Univer 实例的封装,因此你需要在创建了 Univer 实例之后,再用 FUniver 包裹这个实例:

import { FUniver } from "@univerjs/core";
 
const univerAPI = FUniver.newAPI(univer);