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.JA_JP,})console.log(statistics.words, statistics.charactersWithSpaces, statistics.paragraphs)getStatistics() は単語数、文字数、段落数を返します。ranges で選択範囲だけを集計し、signal で不要になった計算を中止できます。
このガイドはいかがですか?