核心功能
Facade API | 可付费升级 | 需要 Univer 服务端 | Univer on Node.js | Preset |
---|---|---|---|---|
✅ | - | - | ✅ | UniverSheetsCorePreset |
核心功能是实现电子表格的基础功能,包含了 Univer Sheets 的核心功能,如创建工作簿、单元格编辑、单元格选择、公式、数字格式等。
该功能包含以下插件包:
@univerjs/engine-render
- 渲染引擎插件@univerjs/engine-formula
- 公式引擎插件@univerjs/drawing
- 基础插图插件@univerjs/ui
- 基础UI插件@univerjs/docs
- doc 插件@univerjs/docs-ui
- doc UI 插件@univerjs/sheets
- sheet 插件@univerjs/sheets-ui
- sheet UI 插件@univerjs/sheets-formula
- 公式插件@univerjs/sheets-formula-ui
- 公式 UI 插件@univerjs/sheets-numfmt
- 数字格式插件@univerjs/sheets-numfmt-ui
- 数字格式 UI 插件
Presets 安装
npm install @univerjs/presets
import { createUniver, defaultTheme, LocaleType, merge } from '@univerjs/presets';
import { UniverSheetsCorePreset } from '@univerjs/presets/preset-sheets-core';
import UniverPresetSheetsCoreZhCN from '@univerjs/presets/preset-sheets-core/locales/zh-CN';
import '@univerjs/presets/lib/styles/preset-sheets-core.css'
const { univerAPI } = createUniver({
locale: LocaleType.ZH_CN,
locales: {
[LocaleType.ZH_CN]: merge(
{},
UniverPresetSheetsCoreZhCN
),
},
theme: defaultTheme,
presets: [
UniverSheetsCorePreset(),
]
});
配置
createUniver
const { univerAPI } = createUniver({
// Univer 实例的主题,默认使用默认主题。
theme: IStyleSheet;
/**
* 是否使用暗黑模式。
* @version 0.8.0+
*/
darkMode?: boolean;
// Univer 实例的语言环境。
locale: LocaleType;
// 要使用的语言环境对象,键为语言环境类型,值为对应的语言环境对象。
locales: ILocales;
// Univer 实例的日志级别。
logLevel?: LogLevel;
// 要使用的预设包列表。
presets: IPresets[];
// 要使用的插件列表。
plugins: IPlugins[];
});
Presets 配置
插件的配置一样可以直接传入对应的 preset 中使用, 以常见的 @univerjs/ui
的配置举例:
const { univerAPI } = createUniver({
presets: [
UniverSheetsCorePreset({
// 容器元素,可以是字符串或者 DOM 元素。
container?: string | HTMLElement;
// 是否显示头部。
header?: boolean;
/**
* 是否显示头部工具栏。
* @version 0.2.0+
*/
toolbar?: boolean;
/**
* 头部工具栏的类型。default: 分组模式;simple:不分组模式。
* @version 0.8.1+
*/
ribbonType?: RibbonType;
// 是否显示底部。
footer?: false | {
// Sheet bar 是子表管理器,包括添加/切换/删除子表。
sheetBar?: boolean;
// 统计栏包括当前选区的统计信息,如计数、总和、平均值等。
statisticBar?: boolean;
// 在底部的菜单,包括高亮、网格线等。
menus?: boolean;
// 底部的缩放滑块。
zoomSlider?: boolean;
};
// 是否显示右键菜单。
contextMenu?: boolean;
// 是否禁用自动聚焦。
disableAutoFocus?: true;
// 依赖注入的覆盖配置。
override?: DependencyOverride;
// 菜单配置
menu?: MenuConfig;
// ... 更多配置项
}),
]
});
menu
- 菜单配置,详见定制菜单项(隐藏菜单项)
完整的配置项参考 IUniverSheetsCorePresetConfig 。
手动组合安装
npm
npm install @univerjs/core @univerjs/design @univerjs/engine-render @univerjs/engine-formula @univerjs/ui @univerjs/docs @univerjs/docs-ui @univerjs/sheets @univerjs/sheets-ui @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui
import { LocaleType, merge, Univer } from '@univerjs/core';
import { defaultTheme } from "@univerjs/design";
import { UniverRenderEnginePlugin } from "@univerjs/engine-render";
import { UniverFormulaEnginePlugin } from "@univerjs/engine-formula";
import { UniverUIPlugin } from "@univerjs/ui";
import { UniverDocsPlugin } from "@univerjs/docs";
import { UniverDocsUIPlugin } from "@univerjs/docs-ui";
import { UniverSheetsPlugin } from "@univerjs/sheets";
import { UniverSheetsUIPlugin } from "@univerjs/sheets-ui";
import { UniverSheetsFormulaPlugin } from "@univerjs/sheets-formula";
import { UniverSheetsFormulaUIPlugin } from "@univerjs/sheets-formula-ui";
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt';
import { UniverSheetsNumfmtUIPlugin } from "@univerjs/sheets-numfmt-ui";
import DesignZhCN from '@univerjs/design/locale/zh-CN';
import UIZhCN from '@univerjs/ui/locale/zh-CN';
import DocsUIZhCN from '@univerjs/docs-ui/locale/zh-CN';
import SheetsZhCN from '@univerjs/sheets/locale/zh-CN';
import SheetsUIZhCN from '@univerjs/sheets-ui/locale/zh-CN';
import SheetsFormulaUIZhCN from '@univerjs/sheets-formula-ui/locale/zh-CN';
import SheetsNumfmtUIZhCN from '@univerjs/sheets-numfmt-ui/locale/zh-CN';
import "@univerjs/design/lib/index.css";
import "@univerjs/ui/lib/index.css";
import "@univerjs/docs-ui/lib/index.css";
import "@univerjs/sheets-ui/lib/index.css";
import "@univerjs/sheets-formula-ui/lib/index.css";
import "@univerjs/sheets-numfmt-ui/lib/index.css";
import '@univerjs/engine-formula/facade';
import '@univerjs/ui/facade';
import '@univerjs/docs-ui/facade';
import '@univerjs/sheets/facade';
import '@univerjs/sheets-ui/facade';
import '@univerjs/sheets-formula/facade';
import '@univerjs/sheets-numfmt/facade';
const univer = new Univer({
theme: defaultTheme,
locale: LocaleType.ZH_CN,
locales: {
[LocaleType.ZH_CN]: merge(
{},
DesignZhCN,
UIZhCN,
DocsUIZhCN,
SheetsZhCN,
SheetsUIZhCN,
SheetsFormulaUIZhCN,
SheetsNumfmtUIZhCN
),
},
});
univer.registerPlugin(UniverRenderEnginePlugin);
univer.registerPlugin(UniverFormulaEnginePlugin);
univer.registerPlugin(UniverUIPlugin, {
container: 'app',
});
univer.registerPlugin(UniverDocsPlugin);
univer.registerPlugin(UniverDocsUIPlugin);
univer.registerPlugin(UniverSheetsPlugin);
univer.registerPlugin(UniverSheetsUIPlugin);
univer.registerPlugin(UniverSheetsFormulaPlugin);
univer.registerPlugin(UniverSheetsFormulaUIPlugin);
univer.registerPlugin(UniverSheetsNumfmtPlugin);
univer.registerPlugin(UniverSheetsNumfmtUIPlugin);
配置
@univerjs/core
@univerjs/core
在初始化时提供了一些配置项,可用于配置主题、国际化等。
new Univer({
// Univer 实例的主题,默认使用默认主题。
theme: IStyleSheet;
/**
* 是否使用暗黑模式。
* @version 0.8.0+
*/
darkMode?: boolean;
// Univer 实例的语言环境。
locale: LocaleType;
// 要使用的语言环境对象,键为语言环境类型,值为对应的语言环境对象。
locales: ILocales;
// Univer 实例的日志级别。
logLevel?: LogLevel;
});
完整的配置项参考 IUniverConfig 。
@univerjs/ui
@univerjs/ui
提供了一些配置项,可用于基础布局的配置。
univer.registerPlugin(UniverUIPlugin, {
// 容器元素,可以是字符串或者 DOM 元素。
container?: string | HTMLElement;
// 是否显示头部。
header?: boolean;
/**
* 是否显示头部工具栏。
* @version 0.2.0+
*/
toolbar?: boolean;
/**
* 头部工具栏的类型。default: 分组模式;simple:不分组模式。
* @version 0.8.1+
*/
ribbonType?: RibbonType;
// 是否显示右键菜单。
contextMenu?: boolean;
// 是否禁用自动聚焦。
disableAutoFocus?: true;
// 依赖注入的覆盖配置。
override?: DependencyOverride;
// 菜单配置
menu?: MenuConfig;
});
menu
- 菜单配置,详见定制菜单项(隐藏菜单项)
完整的配置项参考 IUniverUIConfig 。
@univerjs/sheets
univer.registerPlugin(UniverSheetsPlugin, {
// 如果行样式和列样式都设置了,行样式是否优先于列样式
isRowStylePrecedeColumnStyle?: boolean;
// 自动高度是否适用于合并单元格
autoHeightForMergedCells?: boolean;
});
完整的配置项参考 IUniverSheetsConfig 。
@univerjs/sheets-ui
univer.registerPlugin(UniverSheetsUIPlugin, {
// 是否显示底部。
footer?: false | {
// Sheet bar 是子表管理器,包括添加/切换/删除子表。
sheetBar?: boolean;
// 统计栏包括当前选区的统计信息,如计数、总和、平均值等。
statisticBar?: boolean;
// 在底部的菜单,包括高亮、网格线等。
menus?: boolean;
// 底部的缩放滑块。
zoomSlider?: boolean;
};
// 是否显示公式栏
formulaBar?: boolean;
clipboardConfig?: {
// 在粘贴操作后是否显示粘贴选项按钮
hidePasteOptions?: boolean;
};
// 滚动条配置
scrollConfig?: IScrollBarProps;
// 是否显示受保护范围的阴影。
protectedRangeShadow?: boolean;
// 是否禁用强制字符串警告。
disableForceStringAlert?: boolean;
// 是否禁用强制字符串标记。
disableForceStringMark?: boolean;
// ... 更多配置项
});
完整的配置项参考 IUniverSheetsUIConfig 。
Univer on Node.js 手动组合安装
npm
npm install @univerjs/core @univerjs/design @univerjs/engine-render @univerjs/engine-formula @univerjs/docs @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-numfmt
import { LocaleType, Univer } from '@univerjs/core';
import { defaultTheme } from "@univerjs/design";
import { UniverRenderEnginePlugin } from "@univerjs/engine-render";
import { UniverFormulaEnginePlugin } from "@univerjs/engine-formula";
import { UniverDocsPlugin } from "@univerjs/docs";
import { UniverSheetsPlugin } from "@univerjs/sheets";
import { UniverSheetsFormulaPlugin } from "@univerjs/sheets-formula";
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt';
import '@univerjs/engine-formula/facade';
import '@univerjs/sheets/facade';
import '@univerjs/sheets-formula/facade';
import '@univerjs/sheets-numfmt/facade';
const univer = new Univer({
theme: defaultTheme,
locale: LocaleType.ZH_CN,
});
univer.registerPlugin(UniverRenderEnginePlugin);
univer.registerPlugin(UniverFormulaEnginePlugin);
univer.registerPlugin(UniverDocsPlugin);
univer.registerPlugin(UniverSheetsPlugin);
univer.registerPlugin(UniverSheetsFormulaPlugin);
univer.registerPlugin(UniverSheetsNumfmtPlugin);
Last updated on