オートフィル(フィルハンドル)
オートフィルは Excel でおなじみのフィルハンドル機能です。アクティブな選択範囲の右下に表示される小さな四角を下・上・左・右にドラッグすると、元セルから推測した値で選択範囲を拡張できます。
検出されるパターン:
| 元セル | 動作 |
|---|---|
| 単一セル | タイル状にコピー。元の値が拡張先のすべてのセルに繰り返し書き込まれます。 |
| 数値の数列(2 セル以上) | 等差数列として外挿。1, 2 → 3, 4, 5、5, 10 → 15, 20, 25。 |
| 日付書式の単一セル | 1 ステップごとに 1 日加算。 |
| 数式を含むセル | 相対参照は Excel と同じ要領でシフト、$ 固定参照はそのまま保持。 |
| スタイル・数値書式・セルタイプ | 元範囲から拡張先へ伝播。 |
undo(元に戻す)で、以前に異なるデータが入っていたセルも含めて元の値に戻ります。
有効化・無効化
オートフィルはデフォルトで有効です。
import { createReogrid } from '@reogrid/lite'
// 初期化時に無効化
const { worksheet } = createReogrid({
workspace: '#grid',
autoFill: false,
})
// 実行時に切り替え
worksheet.setAutoFillEnabled(true)
worksheet.setAutoFillEnabled(false)
React / Vue では、フィルハンドルを使わない場合に <Reogrid> コンポーネントへ options={{ autoFill: false }} を渡してください。
プログラムからのフィル
ツールやテスト用途のため、値推測ロジックは副作用のない純粋関数として公開されています。UI と同じ計算結果を取得できます。
import { computeAutoFillValues, type AutoFillSourceCell } from '@reogrid/pro'
const source: AutoFillSourceCell[][] = [
[{ input: '1' }],
[{ input: '2' }],
]
const result = computeAutoFillValues({ source, direction: 'down', steps: 5 })
// result -> [[{ input: '3' }], [{ input: '4' }], [{ input: '5' }], [{ input: '6' }], [{ input: '7' }]]
標準の undo/redo パイプライン経由でフィルを実行したい場合は AutoFillAction を組み合わせて使えます。
import { AutoFillAction } from '@reogrid/pro'
// A1:A2 を A7 まで下方向にフィル(ターゲット範囲はソース範囲を含む)
const action = new AutoFillAction(
{ topRow: 0, leftColumn: 0, bottomRow: 1, rightColumn: 0 },
{ topRow: 0, leftColumn: 0, bottomRow: 6, rightColumn: 0 },
)
grid.actionManager.execute(action)
補足
- フィルハンドルは選択範囲のクロームとして描画されるため、アクティブな選択範囲に自動的に追従します。
- 曜日(
Mon, Tue, ...)や月名のようなカスタムシリーズは本リリースでは検出されません — 代わりにタイルコピーされます。 - フィルハンドルのダブルクリックによる下方向への自動延長は現状未対応です。