ReoGrid ReoGrid Web
zoom ctrl-wheel pinch multi-sheet lite v1.7

表示倍率(ズーム)

setZoom()、倍率ボックス、ポインター位置を中心にしたCtrl/Cmd+ホイールやトラックパッドのピンチで、シートを10%〜400%に拡大縮小します。変わるのは表示だけで、列幅・印刷・エクスポートは100%のまま。倍率はシートごとに保持されます。

デモの解説

v1.7.0で、Excelと同じ表示倍率(ズーム)が加わりました。10%〜400%をシートごとに設定でき、両エディションで利用できます。変わるのは表示だけです。行の高さ・列幅・フォントは100%のシートpxのままなので、測る・印刷する・書き出すものは何も変わらず、罫線もどの倍率でも1pxの太さを保ちます。

  • グリッドの上でCtrl/Cmd+ホイール、またはトラックパッドのピンチで、ポインター位置を中心に拡大縮小します。ポインターの下のセルは動きません。マウス1ノッチで約15%、倍率を整数%に丸めないのでピンチも滑らかです
  • − / + ボタンはExcelに近い段階で倍率を切り替え、セレクトとスライダーはws.setZoom()を直接呼びます。アンカーを渡さなければ、Excelの倍率ボックスと同じく左上のセルが固定されます
  • ツールバーはgrid.onZoomChangeですべての変化に追従します。ツールバー自身が受け取らないホイールやピンチによる変化も含みます
  • ステータス行はgetColumnWidth(1)を表示します。B列はどの倍率でもシート上は64pxのままで、変わるのは画面上の大きさだけです
  • 倍率はExcelのsheetView@zoomScaleと同じくシートごとに持ちます。日別明細タブはsetZoom(0.75)で75%にしてあります。シートの切り替えは「変化」ではないため、デモはworkbook.onActiveSheetChangeでgetZoom()を読み直しています
  • 倍率はxlsxに保存され、85%で保存したブックは85%で開きます。印刷・PDF・HTML出力は倍率の影響を受けません
  • getCellRect()などで自前の要素を重ねる場合、その矩形は100%のシートpxなのでgetZoom()を掛けてください。createReogrid({ wheelZoom: false })でCtrl/Cmd+ホイールをブラウザのページズームに戻せます

主要 API

ws.setZoom(1.25)

表示を拡大縮小します(10%〜400%にクランプ)。アンカー(canvasのCSS px)を渡すと、その位置のシートが動きません

ws.getZoom()

シートの倍率(1 = 100%)。シートを切り替えたら読み直します

grid.onZoomChange(fn)

アクティブシートの倍率が実際に変わるたびに発火 — Ctrl/Cmd+ホイール、ピンチ、setZoom()、xlsxの読み込み

grid.workbook.onActiveSheetChange(fn)

シートの切り替えは倍率の変化ではないので、ここでgetZoom()を読み直して倍率表示を合わせます

ws.getColumnWidth(c)

どの倍率でも100%のシートpxのまま。画面上のpxはgetZoom()を掛けて求めます

createReogrid({ wheelZoom: false })

Ctrl/Cmd+ホイールをブラウザのページズームに任せます。setZoom()はそのまま使えます

ソースコード

TypeScript

関連ドキュメント

関連デモ

ニュースレター

開発の最新情報をお届けします

新しいリリース・機能追加・お知らせをいち早く受け取るには、
メーリングリストにご登録ください。