組込のセル型は 6 種類です。

ws.SetCellType(0, 0, CheckboxCellType.Instance);
ws.SetCellType(1, 0, new DropdownCellType(["未着手", "作業中", "完了"], editable: false));
ws.SetCellType(2, 0, new ProgressCellType(max: 100, color: 0xFF4CAF50));
ws.SetCellType(3, 0, new ButtonCellType("実行"));
ws.SetCellType(4, 0, HyperlinkCellType.Instance);
ws.SetCellType(5, 0, new SparklineCellType(color: 0xFF2196F3));
一覧
| 型 | 生成 | 使うセル値 |
|---|---|---|
| チェックボックス | CheckboxCellType.Instance | bool |
| ドロップダウン | new DropdownCellType(options, editable) | string(選択値) |
| 進捗バー | new ProgressCellType(max, color, bidirectional, showText) | double |
| ボタン | new ButtonCellType(text) | 文字列(text 省略時のラベル) |
| ハイパーリンク | HyperlinkCellType.Instance | string(URL) |
| スパークライン | new SparklineCellType(color) | string(カンマ区切りの数値) |
CheckboxCellType と HyperlinkCellType は状態を持たないため、Instance を共有します。
チェックボックス
値は bool です。クリックで反転します。
ws.SetCellType(0, 0, CheckboxCellType.Instance);
ws.SetBoolean(0, 0, true);
数式から COUNTIF(A:A, TRUE) のように数えられます。
ドロップダウン
new DropdownCellType(["未着手", "作業中", "完了"], editable: false)
editable: true にすると、選択肢以外の文字列も直接入力できます(Excel の
「入力値の種類:リスト」で「その他の値を許可」に相当)。
クリックするとコントロールがポップアップを表示します。ヘッドレスでは記述子が
OpenDropdown を返すだけで、実際のポップアップは発生しません。
進捗バー
new ProgressCellType(max: 100, color: 0xFF4CAF50, bidirectional: false, showText: true)
| 引数 | 内容 |
|---|---|
max | 100% に対応する値(既定 100) |
color | バーの色(ARGB) |
bidirectional | 負の値を左向きに描く |
showText | 数値をバーの上に表示する |
ボタン
new ButtonCellType("実行")
text を省略するとセル値が表示ラベルになります。クリックはコントロールの
CellButtonClicked イベントで受けます。
control.CellButtonClicked += (s, e) => { /* e に位置が入る */ };
ハイパーリンク
ws.SetCellType(0, 0, HyperlinkCellType.Instance);
ws.SetText(0, 0, "https://reogrid.net");
クリックすると既定のブラウザで開きます。開く処理はコントロール層が行うため、 ヘッドレスでは何も起こりません。
スパークライン
ws.SetCellType(0, 5, new SparklineCellType());
ws.SetText(0, 5, "3,7,4,9,12,8,15"); // カンマ区切りの数値列
セル内に折れ線を描きます。V5 で追加された型で、V4 にはありません。
V4 にあって V5 に無い型
DatePicker / RadioButton / NumberInput / 画像系は未実装です。
必要な場合は カスタムセル型 として実装できます。
保存
セル型は reogrid-json に範囲スコープ({r, c, rs, cs, config})で往復します。
XLSX には対応する概念がないため、書き出すと通常のセルになります。