ソートとオートフィルタの設定
列データをソートしたり、フィルタを設定したりしてデータ表示を絞り込む機能は、それぞれのプロパティをTrueかFalseに設定するだけで実現できます。
ソートの設定
2つのCheckBoxを使い、列「メーカー名」と「製品名」のデータを並び替える機能を組み込みます。
データのソートは、操作対象の列をColumnsオブジェクトで指定し、AllowAutoSortプロパティをTrueに設定します。ソート機能が組み込まれると、列見出しに△マークが付加されます。
AllowAutoSortプロパティにFalseを指定すると、ソート機能が解除されます。
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If Me.CheckBox1.Checked = True Then FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = True Else FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = False End If End Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged If Me.CheckBox2.Checked = True Then FpSpread1.ActiveSheet.Columns(1).AllowAutoSort = True Else FpSpread1.ActiveSheet.Columns(1).AllowAutoSort = False End If End Sub
private void CheckBox1_CheckedChanged(object sender, EventArgs e) { if(CheckBox1.Checked == true){ fpSpread1.ActiveSheet.Columns[0].AllowAutoSort = true; }else{ fpSpread1.ActiveSheet.Columns[0].AllowAutoSort = false; } } private void CheckBox2_CheckedChanged(object sender, EventArgs e) { if (CheckBox2.Checked == true) { fpSpread1.ActiveSheet.Columns[1].AllowAutoSort = true; }else{ fpSpread1.ActiveSheet.Columns[1].AllowAutoSort = false; } }
オートフィルタの設定
フィルタ機能は、操作対象の列をColumnsオブジェクトで指定し、AllowAutoFilterプロパティをTrueに設定します。フィルタ機能が組み込まれると、列見出しにフィルタ用のアイコンが付加されます。
AllowAutoFilterプロパティにFalseを指定すると、フィルタ機能が解除されます。
また、FpSpreadクラスのGetRootWorkbook
メソッドを使って、現在アクティブなSpreadViewオブジェクトを取得してSetImageメソッドを使うと、フィルタ実行前後のアイコンを好きなイメージに入れ替えることができます。
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged If Me.CheckBox3.Checked = True Then FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True Else FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = False End If '行フィルタリング実施中のアイコンを設定します Dim sv As FarPoint.Win.Spread.SpreadView = _ FpSpread1.GetRootWorkbook() sv.SetImage(FarPoint.Win.Spread.SpreadView.FilterActive, _ Image.FromFile("j:\SearchFolderHS.bmp")) End Sub
private void CheckBox3_CheckedChanged(object sender, EventArgs e) { if (CheckBox3.Checked == true) { fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = true; }else{ fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = false; } FarPoint.Win.Spread.SpreadView sv = fpSpread1.GetRootWorkbook(); sv.SetImage(FarPoint.Win.Spread.SpreadView.FilterActive, Image.FromFile("j:/SearchFolderHS.bmp")); }
まとめ
fpSpreadコンポーネントを使うと、ワークシートにソートやフィルタ機能を簡単に組み込むことができます。VS標準のDataGridViewコントロールは、ソート機能は実装されていますがオートフィルタ機能は実装されていません。手軽にフィルタ機能を組み込めるfpSpreadコンポーネントは魅力的なコンポーネントになると思います。