MESCIUS SPREAD for Windows Forms 15.0J サンプルコード集
結果を行の表示/非表示ではなくスタイルで区分け表示する

@通常、フィルタリングされた行はシート上での表示/非表示(HideRowFilterクラス)によって処理されます。また、スタイル行フィルタ(StyleRowFilterクラス)を用いることにより、行の表示/非表示ではなく、フィルタリングされた結果をそれぞれのスタイルで表示させることも可能です。

【実行例】 表示/非表示フィルタリング結果

非表示フィルタリング

スタイルフィルタリング結果

スタイルフィルタリング

  • 本機能は新しいスタイルシステムでは有効になりません。LegacyBehaviorsプロパティをAllにするなどStyleを含めた状態で実行してください。
  • フィルタインスタイル/フィルタアウトスタイルは行フィルタリングによってシートにおける表示上でのみ適用されるため、Excelファイルへのエクスポート時に当スタイル情報は反映されません。

 private void Form1_Load(object sender, System.EventArgs e)
 {

  //自動フィルタのフィルタガジェットを表示します
  fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget;

  //フィルタイン行用の名前付きスタイルオブジェクトを作成します
  FarPoint.Win.Spread.NamedStyle InNs = new FarPoint.Win.Spread.NamedStyle();
  InNs.BackColor = Color.LightCyan;
  InNs.ForeColor = Color.Red;

  //フィルタアウト行用の名前付きスタイルオブジェクトを作成します
  FarPoint.Win.Spread.NamedStyle OutNs = new FarPoint.Win.Spread.NamedStyle();
  OutNs.BackColor = Color.LemonChiffon;
  OutNs.ForeColor = Color.Green;

  //1列目に対する新しいフィルタ列定義を作成します(デフォルト設定の定義)
  FarPoint.Win.Spread.FilterColumnDefinition fcd = new FarPoint.Win.Spread.FilterColumnDefinition(0);

  //StyleRowFilterオブジェクト(スタイルフィルタ)を作成し、上記フィルタ列定義を追加します
  FarPoint.Win.Spread.StyleRowFilter sf = new FarPoint.Win.Spread.StyleRowFilter(fpSpread1.ActiveSheet, InNs, OutNs);
  sf.AddColumn(fcd);

  //作成した行フィルタオブジェクトをシート設定します
  fpSpread1.ActiveSheet.RowFilter = sf;

  fpSpread1.ActiveSheet.Cells[0, 0].Value = "North";
  fpSpread1.ActiveSheet.Cells[1, 0].Value = "South";
  fpSpread1.ActiveSheet.Cells[2, 0].Value = "East";
  fpSpread1.ActiveSheet.Cells[3, 0].Value = "South";
  fpSpread1.ActiveSheet.Cells[4, 0].Value = "North";
  fpSpread1.ActiveSheet.Cells[5, 0].Value = "North";
  fpSpread1.ActiveSheet.Cells[6, 0].Value = "West";
  fpSpread1.ActiveSheet.Columns[0].Width = 80;

 }
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

  '自動フィルタのフィルタガジェットを表示します
  FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget

  'フィルタイン行用の名前付きスタイルオブジェクトを作成します
  Dim InNs As New FarPoint.Win.Spread.NamedStyle
  InNs.BackColor = Color.LightCyan
  InNs.ForeColor = Color.Red

  'フィルタアウト行用の名前付きスタイルオブジェクトを作成します
  Dim OutNs As New FarPoint.Win.Spread.NamedStyle
  OutNs.BackColor = Color.LemonChiffon
  OutNs.ForeColor = Color.Green

  '1列目に対する新しいフィルタ列定義を作成します(デフォルト設定の定義)
  Dim fcd As New FarPoint.Win.Spread.FilterColumnDefinition(0)

  'StyleRowFilterオブジェクト(スタイルフィルタ)を作成し、上記フィルタ列定義を追加します
  Dim sf As New FarPoint.Win.Spread.StyleRowFilter(FpSpread1.ActiveSheet, InNs, OutNs)
  sf.AddColumn(fcd)

  '作成した行フィルタオブジェクトをシート設定します
  FpSpread1.ActiveSheet.RowFilter = sf

  FpSpread1.ActiveSheet.Cells(0, 0).Value = "North"
  FpSpread1.ActiveSheet.Cells(1, 0).Value = "South"
  FpSpread1.ActiveSheet.Cells(2, 0).Value = "East"
  FpSpread1.ActiveSheet.Cells(3, 0).Value = "South"
  FpSpread1.ActiveSheet.Cells(4, 0).Value = "North"
  FpSpread1.ActiveSheet.Cells(5, 0).Value = "North"
  FpSpread1.ActiveSheet.Cells(6, 0).Value = "West"
  FpSpread1.ActiveSheet.Columns(0).Width = 80

 End Sub

 

 


© MESCIUS inc. All rights reserved.