
UNVELL株式会社は、Webアプリ向けExcelライクスプレッドシートライブラリ ReoGrid Web の最新版 1.2.1 をリリースしました。3月の正式リリース以降に積み重ねてきた 1.2.x シリーズの機能強化により、数式まわりと編集UXが「本当にExcelのように感じられる」水準へと進化しています。公開APIに破壊的変更はありません。
1.2.1 では、数式編集時にグリッド上へ表示される 参照範囲ハイライトのドラッグ操作 を強化しました。
$)フラグも保持されます。move / nwse-resize / nesw-resize カーソルを表示するため、操作箇所がひと目で分かります。これにより、マウス操作だけで数式の参照範囲を直感的に調整できるようになりました。
1.2.1 に至る 1.2.x シリーズでは、以下の大型機能を追加しています。
検索・参照、複数条件集計、日付、数学・三角、統計、文字列、セル参照など幅広いカテゴリにわたり、Excel互換の組み込み関数を109種類 サポートします。インポートした .xlsx ファイル内の数式もそのまま動作します。
| カテゴリ | 関数の例 |
|---|---|
| 検索/参照 | VLOOKUP, HLOOKUP, INDEX, MATCH, XLOOKUP, XMATCH |
| 複数条件集計 | SUMIFS, COUNTIFS, AVERAGEIFS, SUMPRODUCT |
| 日付 | TODAY, NOW, YEAR, MONTH, DAY, WEEKDAY, EDATE, EOMONTH, DATEDIF |
| 数学/三角 | EXP, LN, LOG, SIN, COS, TAN, ATAN2, RAND, RANDBETWEEN |
| 統計 | MEDIAN, LARGE, SMALL, RANK, CEILING, FLOOR, MROUND |
| 文字列 | SEARCH, EXACT, PROPER, CHAR, CODE |
引数の順序やハマりやすい挙動もExcelに準拠しています。たとえばExcelの ATAN2(x, y) はJavaScriptの Math.atan2(y, x) と引数順が逆ですが、本ライブラリはExcelに従います。
セルに = を入力して数式を編集すると、入力したすべての参照(A1、B2:D10 など)が共有の8色パレットで インライン色分け され、グリッド側にも同色の 破線の矩形 が描かれます。別のセルをクリックするとそのアドレスがキャレット位置に挿入され、ドラッグで範囲に拡張できます。参照が結合セルにかかる場合、ハイライトは結合範囲全体を囲むように拡張されます。
選択範囲の右下に表示される小さな四角をドラッグして、値を上下左右に拡張できます。
1, 2 → 3, 4, 5)。$ は保持します。スタイル・表示形式・セル種別も新しい範囲に伝播し、undo/redoにも完全対応しています。
ワークシートのイベントを、Reactでは Props、Vueでは emit として直接受け取れるようになりました。onSelectionChange・onCellValueChange・onScrollChange などを宣言的に記述でき、worksheet.on*() を命令的に呼ぶ必要がありません。
import { Reogrid } from '@reogrid/pro/react';
<Reogrid
onReady={({ worksheet }) => worksheet.cell('A1').setValue('Hello')}
onSelectionChange={(range) => console.log('selected', range)}
onCellValueChange={({ row, column, newValue }) => save(row, column, newValue)}
style={{ width: '100%', height: 500 }}
/>
条件付き書式のルールに border ペイロードを持たせ、ルールに合致したセルの罫線を辺単位(右/上/下/左)で上書きできるようになりました。xlsx の <dxf><border> 経由でラウンドトリップするため、Excelでロード→保存しても書式が維持されます。
Canvas描画パスに ctx.font・ctx.fillStyle・measureText、および折り返し/複数行テキストレイアウトのフレーム単位キャッシュを追加し、テキストの多いシートでスクロール時のCanvas API呼び出しを 1フレームあたり約70%以上削減 しました。密なシートでもスクロール時のフレームレートが安定します。
Lite版はライセンスキー不要で、npmからすぐにお試しいただけます。
npm install @reogrid/lite
Pro版では109関数の数式ライブラリ、xlsxエクスポート、フルセットのセル種別などが利用可能になります。