TssGrid の立ち位置は MIT(無料・商用可)× ノービルド × 日本語IME堅牢 × 業務フォーム特化。 「Excelを丸ごとブラウザに」ではなく、帳票・マスタ入力・勤怠・在庫のような日本語の入力業務を、軽く・確実にがねらいです。 下表は主要ライブラリとの概況比較と、他社が強い領域(=TssGrid の伸びしろ)を正直にまとめたものです。
✅ 対応 ⚠️ 限定的/外部UI・要拡張 ❌ 非対応 💲 有料機能/有償ライセンス
| 項目 | TssGrid | Tabulator | Handsontable | AG Grid | jspreadsheet CE | SpreadJS |
|---|---|---|---|---|---|---|
| ライセンス・導入 | ||||||
| ライセンス/費用 | ✅ MIT無料・商用可 | ✅ MIT無料・商用可 | 💲 商用は有料 | ✅ Community(MIT)💲 Enterprise有料 | ⚠️ CE無料/Pro有料ライセンス条件あり | 💲 商用(有償) |
| ノービルド(scriptタグ1本) | ✅ | ✅ | ⚠️ 可だが重い | ⚠️ 可だが重い | ✅ | ⚠️ 可だが重い |
| 依存なし | ✅ | ✅ | ✅数式は別ライブラリ | ✅ | ✅ | ✅ |
| サイズ感 | ✅ 極小(1ファイル) | ⚠️ 中〜大機能多く一式 | ❌ 大 | ❌ 大 | ✅ 小 | ❌ 大 |
| 日本語IME堅牢性 | ✅ 最重要設計 | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ✅ 国産級 |
| 編集・入力 | ||||||
| セル編集 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 入力検証(validator) | ✅ 型+関数 | ✅ | ✅ | ✅ | ⚠️ | ✅ |
| セルタイプ(数値/日付/選択/✓) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 全角→半角の自動正規化 | ✅ 既定ON | ❌ 自前 | ❌ 自前 | ❌ 自前 | ❌ 自前 | ⚠️ |
| カスタムエディタ | ✅ 薄い契約 | ✅ | ✅ | ✅ | ⚠️ | ✅ |
| Excel相互コピー&ペースト | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| オートフィル(ハンドル) | ✅ | ⚠️ 貼付fill範囲選択+貼付で複製・ドラッグのハンドルは無し | ✅ | 💲 範囲はEnterprise | ⚠️ | ✅ |
| Undo / Redo | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 日付/時刻ピッカー | ✅ 同梱社内休日カレンダー対応 | ✅日付エディタ | ⚠️ | ⚠️ | ⚠️ | ✅ |
| 表示・操作 | ||||||
| 列固定(フリーズ) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 列リサイズ/幅ロック | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 列の表示/非表示 | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ |
| 並べ替え | ✅ データ並替 | ✅ | ✅ | ✅ | ✅ | ✅ |
| テーマ/CSSカスタム | ✅ CSS変数 | ✅ | ✅ | ✅ | ⚠️ | ✅ |
| プラグイン拡張 | ✅ 軽量 | ✅ モジュール | ✅ | ✅ モジュール | ⚠️ | ✅ |
| 大規模・高度(他社が強い領域 = TssGrid の伸びしろ) | ||||||
| 行固定(フリーズ行) | ✅ frozenRows | ✅ | ✅ | ✅ | ⚠️ | ✅ |
| フィルタUI | ⚠️ サンプルありsetData+編集同期 | ✅ 強力ヘッダフィルタ | ✅ | ✅ 強力 | ⚠️ | ✅ |
| 仮想スクロール(大量行) | ⚠️ 対応virtual:true(窓描画・opt-in)/実測10万行で初期45ms。一部割り切りあり | ✅ 仮想DOM | ✅ | ✅ 最強 | ⚠️ | ✅ |
| セル結合(merge) | ✅ 横/縦/矩形tss-merge+ヘッダ結合 | ❌ヘッダ列グループのみ・データ結合なし | ✅ | ⚠️ | ✅ | ✅ |
| 条件付き書式 | ✅ cellClass値/行でクラス付与 | ✅formatter/rowFormatter | ✅ | ✅ | ⚠️ | ✅ |
| 数式 | ❌ 方針として非搭載 | ❌数式エンジンなし(集計行は別途) | ✅ | ⚠️ | ✅ | ✅ Excel級 |
| Excelファイル入出力(xlsx) | ❌ コア非搭載ExcelJS 併用で可(入出力サンプルあり) | ⚠️SheetJS連携 | 💲/外部 | 💲 Enterprise | ⚠️ | ✅ 完全 |
| CSV出力/入力 | ✅ 出力 / ❌ 入力出力はコア。入力は貼付で代替/CSVファイルは PapaParse 併用(サンプル) | ✅ / ⚠️出力native/入力import | ✅ / ✅ | ✅ / ⚠️ | ✅ / ✅ | ✅ / ✅ |
| ピボット/集計 | ❌ | ⚠️グループ+集計行 | ⚠️ | 💲 Enterprise | ❌ | ✅ |
| グラフ | ❌ | ❌ | ❌ | 💲 Enterprise | ❌ | ✅ |
| モバイル/タッチ操作 | ❌ 将来(参考収集済) | ✅ | ⚠️ | ✅ | ⚠️ | ✅ |
「無料公開して終わり」ではなく、ここを着実に埋めていくのが方針です。正直に並べることが、次のバージョンの地図になります。
virtual:true でopt-in)。可視窓だけ描画する窓方式で、実測10万行=初期45ms。フィルタの基盤とも共用。割り切り: 全機能フル対応の「100点」ではなく、まだ一部制約あり(インデックスマッパ整備は継続)。plugins/tss-merge.js)=アンカー=左上が値/編集/選択、Undo対応・行列の挿入削除で座標追従。ヘッダ結合(nestedHeaders)も別途あり。割り切り: ソートは結合中ロック・縦結合中は行移動不可(分断回避)。cellClass で値/行を見てクラス付与+編集で即追従。見た目は業務側CSS)。Excel風の「ルール設定UI」は将来。frozenRows。列固定 frozenCols と併用で四隅固定)。
導入事例 / Used by
動くデモ: 勤怠表 / 在庫管理 / 数値入力(全角→半角・エラー化) / 条件付き書式 / 画像/SVG/HTMLセル / 行固定 / ヘッダ結合 / 行ドラッグ移動 / Excel出力 / Excel読込 / 休日カレンダー / 時刻ピッカー / 並べ替え / フィルタ / 仮想スクロール