批注
批注功能允许用户在电子表格的单元格中添加注释,以便记录额外信息或提供上下文。它支持多种注释样式和操作,帮助用户更好地理解和协作处理数据。
预览
预设模式
安装
Shell
pnpm add @univerjs/preset-sheets-noteShell
npm install @univerjs/preset-sheets-noteShell
yarn add @univerjs/preset-sheets-noteShell
bun add @univerjs/preset-sheets-note使用
TypeScript
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreZhCN from '@univerjs/preset-sheets-core/locales/zh-CN'import { UniverSheetsNotePreset } from '@univerjs/preset-sheets-note'import UniverPresetSheetsNoteZhCN from '@univerjs/preset-sheets-note/locales/zh-CN'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-note/lib/index.css'const { univerAPI } = createUniver({ locale: LocaleType.ZH_CN, locales: { [LocaleType.ZH_CN]: mergeLocales( UniverPresetSheetsCoreZhCN, UniverPresetSheetsNoteZhCN, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsNotePreset(), ],})插件模式
安装
Shell
pnpm add @univerjs/sheets-note @univerjs/sheets-note-uiShell
npm install @univerjs/sheets-note @univerjs/sheets-note-uiShell
yarn add @univerjs/sheets-note @univerjs/sheets-note-uiShell
bun add @univerjs/sheets-note @univerjs/sheets-note-ui使用
TypeScript
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import { UniverSheetsNotePlugin } from '@univerjs/sheets-note'import { UniverSheetsNoteUIPlugin } from '@univerjs/sheets-note-ui'import SheetsNoteUIZhCN from '@univerjs/sheets-note-ui/locale/zh-CN'import '@univerjs/sheets-note-ui/lib/index.css'import '@univerjs/sheets-note/facade'const univer = new Univer({ locale: LocaleType.ZH_CN, locales: { [LocaleType.ZH_CN]: mergeLocales( SheetsNoteUIZhCN, ), },})univer.registerPlugin(UniverSheetsNotePlugin)univer.registerPlugin(UniverSheetsNoteUIPlugin)Facade API
完整 Facade API 类型定义,请查看 FacadeAPI。
引入
插件模式提示
仅插件模式需要手动引入 Facade 包。预设模式已内置对应的 Facade 包,无需额外导入。
TypeScript
import '@univerjs/sheets-note/facade'获取批注
FWorksheet.getNotes:获取工作表的所有批注
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const notes = fWorksheet.getNotes()notes.forEach((item) => { const { row, col, note } = item console.log(`单元格 ${fWorksheet.getRange(row, col).getA1Notation()} 的批注为: ${note}`)})FRange.getNote:获取范围内左上角单元格的批注
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const fRange = fWorksheet.getRange('A1:D10')const note = fRange.getNote()添加或更新批注
FRange.createOrUpdateNote:创建或更新范围内左上角单元格的批注
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const fRange = fWorksheet.getRange('A1')fRange.createOrUpdateNote({ note: '这是一个批注', width: 160, height: 100, show: true,})删除批注
FRange.deleteNote:删除范围内左上角单元格的批注
TypeScript
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const notes = fWorksheet.getNotes()if (notes.length > 0) { // 删除工作表中第一个批注 const { row, col } = notes[0] fWorksheet.getRange(row, col).deleteNote()}// 删除 C1 单元格批注const fRange = fWorksheet.getRange('C1')fRange.deleteNote()事件监听
完整事件类型定义,请查看 Events。
| 事件名称 | 说明 |
|---|---|
SheetNoteAdd | 添加批注后触发 |
SheetNoteDelete | 删除批注后触发 |
SheetNoteUpdate | 更新批注后触发 |
SheetNoteShow | 显示批注时触发 |
SheetNoteHide | 隐藏批注时触发 |
BeforeSheetNoteAdd | 添加批注前触发 |
BeforeSheetNoteDelete | 删除批注前触发 |
BeforeSheetNoteUpdate | 更新批注前触发 |
BeforeSheetNoteShow | 显示批注前触发 |
BeforeSheetNoteHide | 隐藏批注前触发 |
事件监听示例
TypeScript
// 添加批注后事件const disposable = univerAPI.addEvent(univerAPI.Event.SheetNoteAdd, (params) => { const { workbook, worksheet, row, col, note } = params})// 移除事件监听,使用 `disposable.dispose()`TypeScript
// 删除批注前事件,可取消const disposable = univerAPI.addEvent(univerAPI.Event.BeforeSheetNoteDelete, (params) => { const { workbook, worksheet, row, col, oldNote } = params // 取消批注删除操作 params.cancel = true})// 移除事件监听,使用 `disposable.dispose()`你觉得这篇文档如何?