2020年3月26日にリリースした「SPREAD for WPF(スプレッド)」の最新バージョン「3.0J」では、従来提供していたグリッドコントロール「GcSpreadGrid」に加え、スプレッドシートコントロール「GcSpreadSheet」を新たに提供します。
GcSpreadGridとGcSpreadSheetはどちらも表計算機能を提供するコントロールですが、なぜSPREAD for WPFはこのような2つの類似のコントロールを持つのでしょうか。
今回はGcSpreadGridとGcSpreadSheetそれぞれの特長について紹介し、それぞれどのように使い分けたらよいのか、を解説したいと思います。
表としての機能に磨きをかけたGcSpreadGrid
GcSpreadGridはSPREAD for WPFのバージョン「1.0J」から提供しているコントロールで、「表」に対する完全なソリューションをコンセプトとしています。
Windows Forms版をはじめとしたSPREADシリーズの大きな特長は「Excelライク」ですが、GcSpreadGridは、Excelライクな部分を残しながら、一覧表に関係のない機能を排除することで、他のプラットフォームのSPREAD以上に表機能を強化できました。
GcSpreadGridが強化した表機能
- 1レコード複数行レイアウト
1 レコードに複数の行を持つ表レイアウトを、容易に設計できる機能を提供しています。Windows Formsでは「MultiRowPlus for Windows Forms(マルチロウ プラス)」、JavaScriptでは「Wijmo(ウィジモ)」の「MultiRow」と、他のプラットフォームでは、SPREAD以外の製品が提供するこの機能を、WPFではGcSpreadGridが提供します。
-
グループ化と集計機能
表のグループ化や集計機能を搭載しています。集計には、SPREADが提供する豊富な組込み関数を活用し、プロパティからグループ集計の設定も可能です。
また、GUIでグリッドをデザインできる「GcSpreadGridデザイナ」が提供するグループデザイナ機能を使用して、デザイン時に明細をグループ化することもできます。
GcSpreadGridが提供しない機能
表機能を強化し、グリッドコントロールとして進化したGcSpreadGridでは、Excelが持つ以下のような機能を提供していません。
- マルチシート
- チャート
- シェイプ
- アウトライン
- ビューポート
- …etc
Excel互換を追求するGcSpreadSheet
その一方で、従来のSPREADシリーズが持つようなExcel互換機能を求めるお客様も多数おられました。
そういったお客様の声に応える形でバージョン「3.0J」で追加されたのが、Excelとの互換性を重視して設計されたスプレッドシートコントロール「GcSpreadSheet」です。
GcSpreadSheetが提供するExcel互換機能
- マルチシート
Excelのように複数シートの使用をサポートします。シート間の数式参照やシートの保護などの機能も使用可能です。 - アウトライン表示
アウトラインを作成し、スプレッドシートの行や列をグループ化して表示/非表示を手軽に切り替えることができます。 - ビューポート
ビューポートを分割してワークシートを2つまたは4つの領域に分けて表示できます。ワークシートを分割することで、ワークシートの複数セクションを一度に表示でき、データを容易に比較できます。
開発中のGcSpreadSheetの新機能
GcSpreadSheetでは、次のサービスパック(修正版)で新機能を多数追加予定です。以下、追加予定の機能の一覧の一部を少しお見せします。
- テーブル機能
Excelのようにセル範囲を指定して、テーブルを作成できます。 - マスク型セル
ユーザーが入力可能なデータの形式を制限できるセル型「マスク型セル」が使用可能になります。 - CSVへの出力
CSVファイルへの出力に対応します。 - アンバウンド行
データ連結した一覧に対し、データソースに非連結(アンバウンド)な行を挿入できます。 - データ連結時に新規行の追加
データ連結した一覧への新規行の追加をサポートします。 - ヘッダのスタイル
列ヘッダまたは行ヘッダの外観をカスタマイズできます。 - セルのデータをドラッグ移動
指定したセル範囲のデータのドラッグ&ドロップによる移動をサポートします。 - 数式の追加
新しいExcel互換の数式としてLET関数をサポートします。 - 高DPIサポートの強化
高DPI環境でカーソルアイコンなどが適切なサイズで表示できるようになります。
2つのコントロールで死角なし
GcSpreadGridとGcSpreadSheetは見た目は似通っていますが、それぞれ異なるコンセプトをもったコントロールで、お互いを補完する関係にあります。
また、もちろんこの2つは同一のプロジェクトの中で共存させることができます。
1レコード複数行の表にはGcSpreadGridを、複数シートが必要な画面にはGcSpreadSheet、というように使い分けることで、表計算アプリケーションに求められるあらゆる要件に対応できます。
製品サイトでは、30日間使える無料の評価版や、手軽に機能を確認できるClickOnce形式のデモアプリケーションを公開しているので、是非お試しいただければと思います。