アウトライン
アウトライン機能(グループ化またはディメンションアウトラインとも呼ばれます)を使用すると、ワークシート内の行または列をグループ化できます。これは、折りたたみ可能なセクションを作成することで、大量のデータを整理および要約するのに役立ちます。
はじめに
Univer Sheets では、アウトライン機能を使用すると以下が可能です:
- 行または列のグループ化:行または列の階層グループを作成してデータを整理します。
- グループの折りたたみと展開:クリック一つでグループ化された行または列を表示または非表示にします。
- ネストされたグループ:複雑なデータ階層に対して複数レベルのグループを作成します。
アウトライン機能は、通常以下のシナリオで使用されます:
- 詳細データの要約:詳細な行を集計行の下にグループ化して、よりクリーンなビューを作成します。
- 大規模データセットの整理:関連する列や行をまとめて、ナビゲーションを容易にします。
- 折りたたみ可能なレポートの作成:ユーザーが必要に応じてレポートのセクションを展開または折りたためるようにします。
プラグインモード
インストール
pnpm add @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-uinpm install @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-uiyarn add @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-uibun add @univerjs-pro/sheets-outline @univerjs-pro/sheets-outline-ui使用方法
import { UniverSheetsOutlinePlugin } from '@univerjs-pro/sheets-outline'import { UniverSheetsOutlineUIPlugin } from '@univerjs-pro/sheets-outline-ui'import SheetsOutlineUIJaJP from '@univerjs-pro/sheets-outline-ui/locale/ja-JP'import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import '@univerjs-pro/sheets-outline/facade'import '@univerjs-pro/sheets-outline-ui/lib/index.css'const univer = new Univer({ locale: LocaleType.JA_JP, locales: { [LocaleType.JA_JP]: mergeLocales( SheetsOutlineUIJaJP, ), },})univer.registerPlugin(UniverSheetsOutlinePlugin)univer.registerPlugin(UniverSheetsOutlineUIPlugin)Univer の商用ライセンスをお持ちの場合は、クライアントでのライセンス使用を参照して設定してください。
モバイル対応
まずモバイルエディターを設定します。このページのプラグインモードの初期化コードで、以下のデスクトップ登録を同じパッケージのモバイル版に置き換え、文書を開く前に完了してください。モデル、スタイル、言語ファイル、Facade は維持し、両方を同時に登録しないでください。
| パッケージ | デスクトップの登録 | モバイルの登録 |
|---|---|---|
@univerjs-pro/sheets-outline-ui | UniverSheetsOutlineUIPlugin | UniverSheetsOutlineMobileUIPlugin |
プリセットモード
アウトライン機能は @univerjs/preset-sheets-advanced プリセットに含まれています。
インストール
pnpm add @univerjs/preset-sheets-advancednpm install @univerjs/preset-sheets-advancedyarn add @univerjs/preset-sheets-advancedbun add @univerjs/preset-sheets-advanced使用方法
import { UniverSheetsAdvancedPreset } from '@univerjs/preset-sheets-advanced'import UniverPresetSheetsAdvancedJaJP from '@univerjs/preset-sheets-advanced/locales/ja-JP'import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreJaJP from '@univerjs/preset-sheets-core/locales/ja-JP'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-advanced/lib/index.css'const { univerAPI } = createUniver({ locale: LocaleType.JA_JP, locales: { [LocaleType.JA_JP]: mergeLocales( UniverPresetSheetsCoreJaJP, UniverPresetSheetsAdvancedJaJP, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsAdvancedPreset(), ],})Univer の商用ライセンスをお持ちの場合は、クライアントでのライセンス使用を参照して設定してください。
Facade API
完全な Facade API の型定義は FacadeAPI を参照してください。
インポート
プラグインモード注意
Facade パッケージの手動 import が必要なのはプラグインモードのみです。プリセットモードには対応する Facade パッケージが内蔵されているため、追加の import は不要です。
import '@univerjs-pro/sheets-outline/facade'行アウトラインの作成
Facade API を使用して行アウトライングループを作成できます:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// 2〜6行目をグループ化(0ベースのインデックス:startRow=1, numRows=5)fWorksheet.addRowOutline(1, 5)列アウトラインの作成
同様に、列アウトライングループを作成できます:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// B〜E列をグループ化(0ベースのインデックス:startColumn=1, numColumns=4)fWorksheet.addColumnOutline(1, 4)アウトラインの折りたたみと展開
プログラムでアウトライングループを折りたたんだり展開したりできます:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const rowOutlines = fWorksheet.getDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW)if (rowOutlines.length > 0) { // 最初の行アウトライングループを折りたたむ fWorksheet.setDimensionOutlineCollapsed(rowOutlines[0].id, true) // 後で展開する fWorksheet.setDimensionOutlineCollapsed(rowOutlines[0].id, false)}アウトラインの削除
ID を指定して特定のアウトライングループを削除できます:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const rowOutlines = fWorksheet.getDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW)if (rowOutlines.length > 0) { fWorksheet.removeDimensionOutline(rowOutlines[0].id)}範囲内のアウトラインをクリア
特定の範囲内のすべてのアウトライングループをクリアできます:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// 2〜10行目の範囲内に完全に含まれるすべての行アウトラインを削除fWorksheet.clearDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW, 1, 9)アウトラインのクエリ
ワークシート上のすべてのアウトライングループを取得できます:
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// すべての行アウトラインを取得const rowOutlines = fWorksheet.getDimensionOutlines(univerAPI.Enum.DimensionOutlineAxis.ROW)rowOutlines.forEach((outline) => { console.log(outline.id, outline.start, outline.end, outline.collapsed)})// すべてのアウトライン(行と列の両方)を取得const allOutlines = fWorksheet.getDimensionOutlines()アウトラインデータ構造
各アウトライングループには以下のプロパティがあります:
| プロパティ | 型 | 説明 |
|---|---|---|
id | string | アウトライングループの一意の識別子 |
unitId | string | ワークブックのユニットID |
subUnitId | string | ワークシートのシートID |
axis | DimensionOutlineAxis | アウトラインの軸(row または column) |
start | number | 0ベースの包含開始インデックス |
end | number | 0ベースの包含終了インデックス |
collapsed | boolean | グループが現在折りたたまれているかどうか |
検証とエラー
アウトライングループの作成時には、以下の検証が実行されます:
- 無効な範囲:範囲は有効である必要があります(負でない、ゼロでないカウント)。
- 境界外:範囲はワークシートの境界内である必要があります。
- 交差グループ:新しいグループは既存のグループと交差できません。
- 最大深度:アウトライングループには最大ネスト深度があります。
グループ解除の範囲は、グループ化された範囲を完全に含んでいる必要があります。そうでない場合、検証に失敗します。
検証に失敗した場合、コマンドは実行されず、エラーは SheetsOutlineErrorService を通じて発行されます。
このガイドはいかがですか?