Univer Docs API
Univer Docs는 Microsoft Word와 유사한 개념을 바탕으로 전문적인 문서 조판 기능을 제공합니다.
가져오기
import '@univerjs/docs/facade'import '@univerjs/docs-ui/facade'문서 조작
문서 유닛에서 unitId는 문서의 고유 식별자이며, 문서에는 subUnitId가 없습니다.
문서의 텍스트 콘텐츠는 body.dataStream 문자열에 저장되며, 이 문자열에는 스타일 정보가 포함되지 않습니다.
스타일 정보는 별도의 데이터 구조에 저장되고 인덱스 참조를 통해 텍스트 콘텐츠와 연결됩니다.
줄 바꿈, 페이지 나누기, 섹션, 단락, 표 등의 요소는 서로 다른 특수 문자로 텍스트 콘텐츠에 표시됩니다. 렌더링할 때 이러한 특수 문자가 해당 요소로 변환됩니다.
문서 데이터 구조의 설계를 더 자세히 알아보고 싶다면 Univer Document Architecture and Module Design과 An Initial Exploration of Univer Document Typesetting Design을 읽어 보세요.
문서 만들기
univerAPI.createDocument(data)를 사용해 새 문서를 만들고 해당 FDocument facade 래퍼를 가져옵니다.
매개변수는 문서의 초기 데이터를 포함하는 선택적 문서 데이터 객체입니다. {}를 전달하면 빈 문서가 만들어집니다.
Facade API 대신 하위 수준의 univer 인스턴스를 직접 사용하는 경우 univer.createUnit(UniverInstanceType.UNIVER_DOC, data)를 사용하세요.
const doc = univerAPI.createDocument(data)문서 unitId 가져오기
const doc = univerAPI.getActiveDocument()const unitId = doc?.getId()문서 데이터 가져오기
const doc = univerAPI.getActiveDocument()const saveData = doc.save()문서 폐기하기
문서가 더 이상 필요하지 않으면 Univer 인스턴스의 dispose 메서드를 호출해 인스턴스를 폐기할 수 있습니다.
univer.dispose()텍스트 조작
리치 텍스트 영역의 텍스트 요소를 수정합니다.
텍스트 삽입하기
이 텍스트 영역의 끝에 지정한 텍스트를 추가합니다.
const doc = univerAPI.getActiveDocument()doc?.insertText(0, 'Univer')텍스트 삭제하기
문서 오프셋을 기준으로 텍스트를 삭제합니다.
const doc = univerAPI.getActiveDocument()doc?.deleteRange({ startOffset: 0, endOffset: 1 })스타일 수정
단락의 텍스트 스타일을 설정합니다.
const doc = univerAPI.getActiveDocument()const paragraph = doc?.getParagraphs()[0]paragraph?.setStyle({ textStyle: { cl: { rgb: '#FF0000', }, },})페이지 나누기 삽입
\f 문자는 페이지 나누기를 나타내며, 문서에 페이지 나누기를 삽입할 때 사용합니다.
const doc = univerAPI.getActiveDocument()doc?.insertText(0, '\f')문서 통계
기반 DocumentDataModel을 사용해 전체 문서나 선택한 범위의 통계를 계산할 수 있습니다.
const doc = univerAPI.getActiveDocument()if (!doc) throw new Error('No active document')const statistics = await doc.getDocumentDataModel().getStatistics({ locale: univerAPI.Enum.LocaleType.KO_KR,})console.log(statistics.words, statistics.charactersWithSpaces, statistics.paragraphs)getStatistics()는 단어, 문자, 단락 수를 반환합니다. ranges로 선택한 텍스트만 집계하고 signal로 더 이상 필요하지 않은 계산을 취소할 수 있습니다.
이 가이드는 어떠셨나요?