v1.5.0
機能リリースです。目玉は Excel スタイルの検索と置換(Ctrl+F / Ctrl+H)、選択範囲・行・列のドラッグ移動、Excel 書式コードに対応したページヘッダー/フッター。さらに PDF エクスポートがロケール指定に対応し、CJK フォントを自動で埋め込みます。公開 API に破壊的変更はありません。
✨ ハイライト
- ▸ 検索と置換(両エディション)。 Ctrl/Cmd+F・Ctrl/Cmd+H で開く組み込みバーが、シート・選択範囲・ブック全体(一致したシートを自動でアクティブ化)を検索します。大文字小文字の区別、セル内容の完全一致、正規表現に対応。一致はすべてキャンバス上でハイライトされ、Enter で順に移動、全置換は 1 手で元に戻せます。
createReogrid({ showFindBar: false })とgrid.find/replaceAllなどで独自 UI も構築できます。 - ▸ 範囲・行・列の移動。 選択範囲の枠をドラッグしてブロックを移動(Excel と同じく移動先を上書き)、選択済みの行・列ヘッダーをドラッグすると切り取り+挿入で並べ替えます。値・数式・スタイル・数値書式・セルタイプ・罫線・コメント・ロック状態が一緒に移動します。
onBeforeRangeMoveはキャンセル可能で、結合セルが分断されることはなく、移動は 1 件の undo エントリになります。 - ▸ ページヘッダー・フッター(Pro)。
PrintSettings.headerFooterで、Excel と同じ書式コード(&P/&N/&D)を使い用紙の余白にページ番号・日付・シート名・ファイル名を印刷できます。奇数/偶数ページ別、先頭ページ別の帯にも対応。PDF エクスポートとページ分割印刷 HTML の両方で描画し、xlsx を往復します。 - ▸ PDF エクスポートのロケール指定(Pro)。
saveAsPdf({ locale: 'zh-CN' })でフォントのバイト列を持ち回ることなく適切な CJK フォントを埋め込みます。ja/zh-CN/zh-TW/koは標準登録済みで、registerPdfFontで独自に追加できます。日本語フォントは簡体字中国語のビジネス頻出語の約 3 分の 1 しかカバーしないため、これが中国語出力の豆腐(□□□)を防ぎます。
+ 追加
- ▸ 検索と置換。
instance.find/findNext/findPrevious/findAll/replace/replaceAll/clearFind/showFindBar/hideFindBar、およびワークシート側のworksheet.findAllほか。オプションはmatchCase、wholeCell、useRegex、lookIn('formula'/'value')、order、range、includeHidden、インスタンスレベルのscope('sheet'/'selection'/'workbook')。非表示行・列、結合セルの従属セル、遅延ロードの未ロード行はスキップされ、保護セルが書き換わることはありません。 - ▸ 範囲・行・列の移動。
RangeHandle.moveTo(row, column)、worksheet.moveRange/moveRows/moveColumns、事前判定のcanMoveRange/canMoveRows/canMoveColumns、操作を無効化するworksheet.setRangeMoveEnabled(false)、そしてキャンセル可能なinstance.onBeforeRangeMoveとonAfterRangeMoveイベント。 - ▸ ページヘッダー・フッター(Pro)。
PrintSettings.headerFooterに帯ごとの左・中央・右セクション、differentOddEven/differentFirstで有効になるevenHeader/evenFooter・firstHeader/firstFooter、実際に反映されるmargins.header/margins.footer(Excel 既定 0.3 インチ)。背の高い帯は本文マージンを押し出すため、セルの上に重ならず 1 ページあたりの行数が減ります。 - ▸ PDF の
localeとフォントレジストリ(Pro)。 埋め込むフォントを指すExportPdfOptions.locale。registerPdfFont、preloadPdfFont、getPdfFont、isPdfFontLoaded、isPdfFontRegistered、getRegisteredPdfFontTags、clearPdfFontCacheを@reogrid/proからエクスポート。エクスポートは同期のままなので、ロケールは自分で制御できる非同期地点で一度 preload してください。 - ▸
instance.focus()— ホスト側のツールバーやメニュー操作のあとにグリッドへキーボードフォーカスを戻します。次のショートカット(undo/redo、コピー/貼り付け、矢印キー)がブラウザではなくグリッドに届きます。 - ▸
worksheet.clearRowOutlines()/clearColumnOutlines()(Pro)とsyncOutlines()— すべてのアウトライングループを 1 回で解除、またはOutlineManagerを直接操作したあとにアウトライン状態を再適用します。 - ▸
WorksheetOptions.autoFitMaxScanRows(既定 1000)— 自動列幅調整が走査する行数の上限。巨大なシートでの文字幅計測コストを抑えます。
~ 変更
- ▸ 列・行の境界のダブルクリックで選択範囲全体を自動調整。 A:D(や 3:6 行)を選択していずれかの境界をダブルクリックすると、Excel と同様に選択中のすべての列・行が調整されます。以前はポインタ直下の 1 本のみでした。
- ▸ モニター変更時の HiDPI 再スケール。
devicePixelRatioの変化を監視するようになり、Retina と通常モニター間でウィンドウを移動しても、次に手動リサイズするまでキャンバスがぼやけたままになることがなくなりました。
🐛 修正
- ▸ セル自体が画面外にスクロールしてもはみ出しテキストが描画され続けます。 右隣の空セルにはみ出した長い値が、そのセルの列がビューポートから出た途端に丸ごと消えていました。
- ▸ ウィンドウ下部のドロップダウンが画面外ではなく上方向に開きます。 セルのドロップダウン(リスト入力規則/ドロップダウンセルタイプ)とオートフィルターのポップアップは、下に収まらない場合セルの上に反転し、水平方向もビューポート内に収まります。
- ▸ フローティング画像がネイティブスクロールバーを覆わなくなり、最終行・最終列がスクロールバーの下に隠れなくなりました(Windows や、常時表示設定の macOS など、領域を占有するスクロールバー環境)。
- ▸ ウィンドウ枠の固定後にスクロールバー末尾の無効な遊びが残らなくなりました — 構造変更時にスクロールスペーサーを再計算するようになり、ネイティブとワークシートのスクロール最大値が即座に一致します。
- ▸
readReoGridJson()がワークシートにマージせず置き換えるようになり、2 つ目の文書を読み込んでも前の文書の行・スタイル・結合が下に残らなくなりました。またwriteReoGridJson(worksheet)がシート名を保持し、保存のたびにSheet1に戻ることがなくなりました。 - ▸ 数値書式付きの数式セルが一括再計算後に古い値を表示し続ける問題を修正(ソート・JSON 読み込み・帳票バインド・移動)。
- ▸ PDF:
pageSizeの B4 / B5 / Tabloid / Executive が反映されます(従来は無警告で A4 にフォールバック)。グリッド線はシート自身の設定に従い、改ページ境界の罫線が両ページに印刷されます。 - ▸
worksheet.selectionが公開型定義に含まれるようになりました — ドキュメント記載のファサードは実行時には動作していましたが、同梱の.d.tsから欠落していました。 - ▸ アウトライングループを解除すると、その行・列が再表示されます。 またグループ括弧の閉じ側の目印が、Excel と同じくトグルボタンから離れた端に描画されるようになりました。