2.0Jの新機能
〈SP2〉アンドゥ/リドゥの操作に対応
ユーザーが直前に行った操作を取り消してそれ以前の状態に戻すアンドゥ(Undo)と、アンドゥによって取り消された操作をもう一度実行するリドゥ(Redo)の操作に対応しました。
〈SP2〉データロード時のUIを追加
データが読み込み中であることを示すインジケータのUIが表示できるようになりました。UIはテンプレートを使用してカスタマイズすることも可能です。大量データの読み込みなど、時間のかかる処理を行う場合に活用できます。
〈SP2〉フィルタリング/ソート中の編集操作を強化
フィルタリング/ソートされている状態で値を変更した場合、入力値をただちにフィルタリング/ソートするかどうかを選択できるようになりました。
〈SP2〉コンボボックス型セルのオートセレクト機能
コンボボックス型セルに値を入力したとき、その文字から始まる項目を自動的に選択させることができます。
〈SP2〉ペースト機能を改善
コピーした値を複数のセル範囲にペーストできるよう機能を改善しました。
〈SP2〉Excel出力時のシート名設定
Excelへのエクスポート時に任意のシート名を設定できるようになりました。
フィルタリング・ソートを強化
条件フィルタ、検索ボックスを追加
フィルタリングドロップダウンリストに、フィルタリング条件に「指定の値に等しい」「指定の値より大きい」などを選択できる条件フィルタを追加しました。データ内容に応じてテキスト、数値、日付に対する条件を指定できます。また、フィルタ条件を任意のテキストに絞り込める検索ボックスも追加しました。よりExcelに近い、外観と操作性を実現します。
フィルタリング時のイベント
フィルタリングが実行されたときに発生するFiltered イベントを追加しました。イベントパラメータからフィルタリングが行われた列やフィルタアクションなどが取得でき、フィルタリングに関する細かな制御が可能となります。
フィルタリング・ソートの対象から固定行を除外
フィルタリングやソートを行う際、固定行を対象とするかどうか設定するプロパティを追加しました。固定行に表示されているデータはフィルタまたはソートの対象から除外することができます。
ドラッグフィル
数値に関するオートフィル機能を強化しました。テキストを含む数値を連続データとして入力できます。例えば「A1」と表示されたセルのフィルハンドルをドラッグすると「A2」「A3」「A4」・・・という連続データを入力することが可能です。「10cm」や「1丁目」のような接尾語を含む数値にも対応し、「001」のようなゼロ補填された数値に対しても「002」「003」といった連続データを数値として入力します。
また、既定のフィルメニュー項目を設定するプロパティを追加しました。フィルメニューが開いたときに選択されている項目を指定できるほか、フィルメニューを非表示にした場合のドラッグモードにも適用されます。
セル値変更のイベント
ユーザーによるセルの値変更や、セルのValueプロパティが変更されたときに発生する、以下のイベントを追加しました。
値の変更を検知するだけではなく、非編集状態のセルでDeleteキーが押された場合など、これまで検出できなかったさまざまなユーザー操作を処理することができるようになりました。
セルへのバインディングをサポート
セルの外観を定義する基底クラスであるCellPresenterクラスにValue依存関係プロパティを追加しました。これにより、セルレベルへのバインディングが可能となります。セルの値変更をトリガーとしたMVVMパターンでの設計にも対応します。画面制御をビジネスロジックから分離し、アプリケーションの保守性を高める効果が期待できます。
プロパティによるスタイル設定
これまでは、XAMLコードでTemplateやStyleを定義する必要のあった次の外観をプロパティで設定できるようになりました。
- アクティブセルの背景色/文字色
- 選択範囲の背景色の不透過度
- ヘッダセルのマウスホバー色
また、条件付き書式や名前付きスタイル、および交互行のスタイルを定義するStyleInfoクラスに、FocusableとLockedプロパティを追加しました。これまでセル単位で設定していたロックやフォーカスの可否の設定を、特定の条件下や要素全体をターゲットとして一括で設定できるようになりました。
Excelライクな外観
Excel 2013/2016のテーマを追加
Excel 2013および2016スタイルのテーマを追加しました。それぞれ、カラフル、濃い灰色、薄い灰色、黒、白にも対応しています。
十字カーソルに対応
プロパティ設定により、セル上にあるマウスカーソルはExcelのような十字型に変更できるようになりました。この場合も、ヘッダの境界線やドロップダウンボタンの上のカーソルは、自動的に適した形状で表示されます。
数式の追加と計算機能
120種の数式を追加
Excel 2010/2013/2016で追加された数式120種を追加しました。SPREAD for WPFで使用可能な数式の合計は448種となります。
非表示セルを計算から除外
グループ集計の際、非表示セルを計算結果から除外することが可能です。集計方法を指定するAggregationType列挙体に、AveExcludeHiddenRowsやSumExcludeHiddenRowsなど、非表示セルを除外する計算方法を示すメンバを追加しました。また、SUBTOTAL関数では非表示の値を無視する関数コード(101~111)をサポートしました。例えば、非表示セルを含まないA1からA10の合計値は「SUBTOTAL(109, A1:A10)」という数式で計算できます。
Excelエクスポートの改善
パフォーマンス向上
Excelファイルへ出力するSaveExcelメソッドに、パフォーマンスを重視したオーバーロードを追加しました。1000列×10000行など、大量のデータを高速および最小限のメモリ使用量でExcelファイルにエクスポートします。
※ Biff8形式への出力はサポートしません。
セルの最大長テキストを超えた場合の処理
セルの表示テキストがExcelのセルの最大長(32,768バイト)を超えている場合、Excelファイルへの出力すると最大長に自動カットされるよう、動作を改善しました。
その他
- データ検索を行うSearch メソッドを追加しました。
- 大量のデータが連結されている際の、ペースト/カット/クリア操作のパフォーマンスを改善しました。