주석
주석 기능을 사용하면 스프레드시트 셀에 설명을 추가해 부가 정보를 기록하거나 맥락을 제공할 수 있습니다. 다양한 주석 스타일과 작업을 지원하므로 사용자가 데이터를 더 잘 이해하고 함께 작업하는 데 도움이 됩니다.
플러그인 모드
설치
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 SheetsNoteUIEnUS from '@univerjs/sheets-note-ui/locale/en-US'import '@univerjs/sheets-note-ui/lib/index.css'import '@univerjs/sheets-note/facade'const univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( SheetsNoteUIEnUS, ), },})univer.registerPlugin(UniverSheetsNotePlugin)univer.registerPlugin(UniverSheetsNoteUIPlugin)프리셋 모드
설치
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 UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'import { UniverSheetsNotePreset } from '@univerjs/preset-sheets-note'import UniverPresetSheetsNoteEnUS from '@univerjs/preset-sheets-note/locales/en-US'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.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( UniverPresetSheetsCoreEnUS, UniverPresetSheetsNoteEnUS, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsNotePreset(), ],})Facade API
전체 Facade API 타입 정의는 FacadeAPI에서 확인할 수 있습니다.
가져오기
Plugin mode note
플러그인 모드에서만 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(`Cell ${fWorksheet.getRange(row, col).getA1Notation()} has note: ${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: 'This is an annotation', 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) { // Remove the first annotation in the worksheet const { row, col } = notes[0] fWorksheet.getRange(row, col).deleteNote()}// Remove the annotation in cell C1const fRange = fWorksheet.getRange('C1')fRange.deleteNote()이벤트 리스너
전체 이벤트 타입 정의는 이벤트에서 확인할 수 있습니다.
| 이벤트 이름 | 설명 |
|---|---|
SheetNoteAdd | 주석을 추가한 후 트리거됩니다 |
SheetNoteDelete | 주석을 삭제한 후 트리거됩니다 |
SheetNoteUpdate | 주석을 업데이트한 후 트리거됩니다 |
SheetNoteShow | 주석이 표시될 때 트리거됩니다 |
SheetNoteHide | 주석이 숨겨질 때 트리거됩니다 |
BeforeSheetNoteAdd | 주석을 추가하기 전에 트리거됩니다 |
BeforeSheetNoteDelete | 주석을 삭제하기 전에 트리거됩니다 |
BeforeSheetNoteUpdate | 주석을 업데이트하기 전에 트리거됩니다 |
BeforeSheetNoteShow | 주석을 표시하기 전에 트리거됩니다 |
BeforeSheetNoteHide | 주석을 숨기기 전에 트리거됩니다 |
이벤트 리스너 예시
TypeScript
// Triggered after adding an annotationconst disposable = univerAPI.addEvent(univerAPI.Event.SheetNoteAdd, (params) => { const { workbook, worksheet, row, col, note } = params})// Remove event listener using `disposable.dispose()`TypeScript
// Triggered before removing an annotation, can be canceledconst disposable = univerAPI.addEvent(univerAPI.Event.BeforeSheetNoteDelete, (params) => { const { workbook, worksheet, row, col, oldNote } = params // Cancel the annotation deletion operation params.cancel = true})// Remove event listener using `disposable.dispose()`이 가이드는 어떠셨나요?