MESCIUS SPREAD for Windows Forms 17.0J
スライサーの使用

Spread for WinFormsは、ワークシートにてスライサー(ビジュアルフィルタ)の使用を対応します。スライサーを使用すると、ドロップダウンリストを使用せず、テーブルのデータをすばやくフィルタできます。

ユーザーが、スライサーの複数の「コピー」を作成することで異なるワークシートで同時に動作させることができます。キーボードショートカットの「Ctrl +クリック」または「Shift +クリック」を使用して項目を選択するか、複数の項目をドラッグしてフィルタ項目を含めると、特定の要件に従ってその項目のデータがレポートに表示されます。

スライサーの追加

ワークシートにスライサーを追加するには、最初にEnhancedShapeEngine プロパティの値をtrueに設定して、新しいシェイプエンジンを有効にする必要があります。その後、ISlicerCaches インタフェースのAdd()メソッドを使用するか、テーブル上にクリックしてリボンバーでの[挿入]ボタンをクリックすると、ワークシートにスライサーを追加できます。

スライサーは、ヘッダー、キャプション、スライサー項目およびクリアボタンで構成されます。 次の図は、ワークシートに追加されているスライサーを示します。

 

Slicers example

 

次のサンプルコードは、スプレッドシートにスライサーを追加する方法を示します。

C#
コードのコピー
// スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。
fpSpread1.Features.EnhancedShapeEngine = true;
// スライサーを追加します。
  private static void AddSlicer(IWorkbook WorkBook, IWorksheet WorkSheet)
{ 
// ワークシートのデータを初期化します。
WorkSheet.Cells[0, 0].Text = "Name";
WorkSheet.Cells[0, 1].Text = "City";
WorkSheet.Cells[0, 2].Text = "Weight";
WorkSheet.Cells[1, 0].Text = "Bob";
WorkSheet.Cells[1, 1].Text = "NewYork";
WorkSheet.Cells[1, 2].Value = 80;
WorkSheet.Cells[2, 0].Text = "Betty";
WorkSheet.Cells[2, 1].Text = "Chicago";
WorkSheet.Cells[2, 2].Value = 72;
WorkSheet.Cells[3, 0].Text = "Alice";
WorkSheet.Cells[3, 1].Text = "Washington";
WorkSheet.Cells[3, 2].Value = 71;
// テーブルを作成します。
ITable table = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes);

// 列インデックスを使用してSlicerCacheを追加します。
ISlicerCache slicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache");

// SlicerCacheにスライサーを追加します。
ISlicer slicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200);
}

Visual Basic
コードのコピー
'スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。
fpSpread1.Features.EnhancedShapeEngine = True
'スライサーを追加します。
  Private Shared Sub AddSlicer(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet)
'ワークシートのデータを初期化します。
    WorkSheet.Cells(0, 0).Text = "Name"
    WorkSheet.Cells(0, 1).Text = "City"
    WorkSheet.Cells(0, 2).Text = "Weight"
    WorkSheet.Cells(1, 0).Text = "Bob"
    WorkSheet.Cells(1, 1).Text = "NewYork"
    WorkSheet.Cells(1, 2).Value = 80
    WorkSheet.Cells(2, 0).Text = "Betty"
    WorkSheet.Cells(2, 1).Text = "Chicago"
    WorkSheet.Cells(2, 2).Value = 72
    WorkSheet.Cells(3, 0).Text = "Alice"
    WorkSheet.Cells(3, 1).Text = "Washington"
    WorkSheet.Cells(3, 2).Value = 71
'テーブルを作成します。
    Dim table As ITable = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes)
'列インデックスを使用してSlicerCacheを追加します。
    Dim slicerCache As ISlicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache")
'SlicerCacheにスライサーを追加します。
    Dim slicer As ISlicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200)
End Sub

複数スライサーの追加

ワークシートに 複数のスライサーを追加するには、ISlicerCaches インタフェースのAdd()メソッドを使用します。次の図は、複数のスライサーが追加されたスプレッドシートを示します。

 

次のサンプルコードは、スプレッドシートに複数のスライサーを追加する方法を示します。

C#
コードのコピー
// スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。
fpSpread1.Features.EnhancedShapeEngine = True
private static void AddMultipleSlicer(IWorkbook WorkBook, IWorksheet WorkSheet)
{
// ワークシートのデータを初期化します。
  WorkSheet.Cells[0, 0].Text = "Name";
  WorkSheet.Cells[0, 1].Text = "City";
  WorkSheet.Cells[0, 2].Text = "Weight";
  WorkSheet.Cells[1, 0].Text = "Bob";
  WorkSheet.Cells[1, 1].Text = "NewYork";
  WorkSheet.Cells[1, 2].Value = 80;
  WorkSheet.Cells[2, 0].Text = "Betty";
  WorkSheet.Cells[2, 1].Text = "Chicago";
  WorkSheet.Cells[2, 2].Value = 72;
  WorkSheet.Cells[3, 0].Text = "Alice";
  WorkSheet.Cells[3, 1].Text = "Washington";
  WorkSheet.Cells[3, 2].Value = 71;
// テーブルを作成します。
  ITable table = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes);
  
// 列インデックスを使用してSlicerCacheを追加します。
  ISlicerCache slicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache");
  
// SlicerCacheにスライサーを追加します。
  ISlicer slicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200);
  
// 列名を使用して別のSlicerCacheを追加します。
 ISlicerCache slicerCache2 = WorkBook.SlicerCaches.Add(table, "City", "slicerCache2");

// 別のSlicerCacheに別のスライサーを追加します。
 ISlicer slicer2 = slicerCache2.Slicers.Add(WorkSheet, "slicer2", "City", 410, 20, 200, 200);
} 

Visual Basic
コードのコピー
'スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。
fpSpread1.Features.EnhancedShapeEngine = True 
Private Shared Sub AddMultipleSlicer(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet)
' ワークシートのデータを初期化します。
    WorkSheet.Cells(0, 0).Text = "Name"
    WorkSheet.Cells(0, 1).Text = "City"
    WorkSheet.Cells(0, 2).Text = "Weight"
    WorkSheet.Cells(1, 0).Text = "Bob"
    WorkSheet.Cells(1, 1).Text = "NewYork"
    WorkSheet.Cells(1, 2).Value = 80
    WorkSheet.Cells(2, 0).Text = "Betty"
    WorkSheet.Cells(2, 1).Text = "Chicago"
    WorkSheet.Cells(2, 2).Value = 72
    WorkSheet.Cells(3, 0).Text = "Alice"
    WorkSheet.Cells(3, 1).Text = "Washington"
    WorkSheet.Cells(3, 2).Value = 71
'テーブルを作成します。
    Dim table As ITable = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes)
'列インデックスを使用してSlicerCacheを追加します。
    Dim slicerCache As ISlicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache")
SlicerCacheにスライサーを追加します。
    Dim slicer As ISlicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200)
'列名を使用して別のSlicerCacheを追加します。
    Dim slicerCache2 As ISlicerCache = WorkBook.SlicerCaches.Add(table, "City", "slicerCache2")
'別のSlicerCacheに別のスライサーを追加します。
    Dim slicer2 As ISlicer = slicerCache2.Slicers.Add(WorkSheet, "slicer2", "City", 410, 20, 200, 200)
End Sub

スライサー項目の選択

ISlicerItemインタフェースのSelected プロパティを使用することにより、スライサー項目の選択状態を切り替えることができます。

次のサンプルコードは、スプレッドシートにスライサー項目を選択する方法を示します。

C#
コードのコピー
private static void Filter(IWorkbook WorkBook)
{
  WorkBook.SlicerCaches[0].SlicerItems["Bob"].Selected = false;
  WorkBook.SlicerCaches[0].SlicerItems["Betty"].Selected = true;
  WorkBook.SlicerCaches[0].SlicerItems["Alice"].Selected = false;
}

Visual Basic
コードのコピー
Private Shared Sub Filter(ByVal WorkBook As IWorkbook)
    WorkBook.SlicerCaches(0).SlicerItems("Bob").Selected = False
    WorkBook.SlicerCaches(0).SlicerItems("Betty").Selected = True
    WorkBook.SlicerCaches(0).SlicerItems("Alice").Selected = False
End Sub

別法としては、複数選択モードを有効にするには、キーボードショートカットの「Ctrl +クリック」または「Alt+S」を使用します。次に、特定の領域をクリックして、選択した項目のデータを除外できます。複数のスライサー項目を選択するには、スライサーの最初項目をクリックし、マウスポインターを最後の項目に向かってドラッグします。

フィルタの削除

データ項目をすべて表示するには、ISlicerCacheインタフェースのClearAllFilters()ClearManualFilter()、およびClearDateFilter()メソッドを使用することにより、スライサーのフィルタを削除します。代わりに、スライサーの右上にある[フィルタのクリア]ボタンやキーボードショートカットの「Alt + C」を使用する方法もあります。

次のサンプルコードは、スプレッドシートからスライサーのフィルタを削除する方法を示します。

C#
コードのコピー
private static void ClearFilter(IWorkbook WorkBook)
{
   // スライサーからすべてのフィルタを削除します。
   WorkBook.SlicerCaches[0].ClearAllFilters();
}          

Visual Basic
コードのコピー
Private Shared Sub ClearFilter(ByVal WorkBook As IWorkbook)
  'スライサーからすべてのフィルタを削除します。
  WorkBook.SlicerCaches(0).ClearAllFilters()
End Sub

設定の変更

スライサーの設定を変更するには、ISlicerインタフェースのCaptionプロパティとISlicerCacheインタフェースのSortItemsプロパティを使用します。

次の図は、キャプション、並べ替え順序(名前が降順で表示される)が変更されたスライサーを示します。

 

次のサンプルコードは、 スプレッドシートでスライサーの設定を変更する方法を示します。

C#
コードのコピー
private static void ModifySlicerSetting(IWorkbook WorkBook, IWorksheet WorkSheet)
 {
  // キャプション名を変更します。
  WorkSheet.Slicers["slicer"].Caption = "Name Changed";
  
  // 並べ替え順序を変更します。
  WorkBook.SlicerCaches["slicerCache"].SortItems = SlicerSort.Descending;
}

Visual Basic
コードのコピー
Private Shared Sub ModifySlicerSetting(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet)
    'キャプション名を変更します。
    WorkSheet.Slicers("slicer").Caption = "Name Changed"
    '並べ替え順序を変更します。
    WorkBook.SlicerCaches("slicerCache").SortItems = SlicerSort.Descending
End Sub

書式設定

スライサーの書式設定を変更するには、ISlicer インタフェースのNumberOfColumnsプロパティで列数、Widthプロパティでスライサー幅、Heightプロパティでスライサーの高さ、ColumnWidthプロパティで列幅、RowHeightプロパティで行高、およびDisplayHeaderプロパティでヘッダーの表示状態を設定することができます。

次の図は、カスタム書式が設定されているスライサーを示します。

 

次のサンプルコードは、スプレッドシートにスライサーの書式設定を変更する方法を示します。

C#
コードのコピー
private static void ChangeSlicerFormatting(IWorksheet WorkSheet)
{
// スライサーの書式設定を変更します。
WorkSheet.Slicers["slicer"].NumberOfColumns = 2;
WorkSheet.Slicers["slicer"].Width = 250;
WorkSheet.Slicers["slicer"].Height = 150;
WorkSheet.Slicers["slicer"].ColumnWidth = 100;
WorkSheet.Slicers["slicer"].RowHeight = 70;
WorkSheet.Slicers["slicer"].DisplayHeader = false;
}

Visual Basic
コードのコピー
Private Shared Sub ChangeSlicerFormatting(ByVal WorkSheet As IWorksheet)
    'スライサーの書式設定を変更します。
    WorkSheet.Slicers("slicer").NumberOfColumns = 2
    WorkSheet.Slicers("slicer").Width = 250
    WorkSheet.Slicers("slicer").Height = 150
    WorkSheet.Slicers("slicer").ColumnWidth = 100
    WorkSheet.Slicers("slicer").RowHeight = 70
    WorkSheet.Slicers("slicer").DisplayHeader = False
End Sub

スタイルのカスタマイズ

スライサーのスタイルをカスタマイズするには、ITableStyleインタフェースのShowAsAvailableSlicerStyle プロパティをtrueに設定し、カスタムスタイルを定義してスライサーに適用します。

次の図は、スプレッドシートでカスタムのフォントスタイル、フォントサイズ、およびフォント色が設定されたスライサーを示します。

 

 

次のサンプルコードは、スプレッドシートでスライサーのスタイルをカスタマイズする方法を示します。

C#
コードのコピー
private static void CustomizeSlicerStyle(IWorkbook WorkBook, IWorksheet WorkSheet)
{ 
// スライサーにカスタムスタイルを設定します。
ITableStyle slicerStyle = WorkBook.TableStyles.Add("CustomStyle1");

// カスタムスタイルをSlicerに設定するには、ShowAsAvailableSlicerStyleをtrueに設定します。
slicerStyle.ShowAsAvailableSlicerStyle = true;
slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Name = "Arial";
slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Bold = true;
slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Italic = true;
slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Size = 20;
slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Color = GrapeCity.Spreadsheet.Color.FromThemeColor(GrapeCity.Core.ThemeColors.Accent3);
WorkSheet.Slicers["slicer"].Style = slicerStyle;
}     

Visual Basic
コードのコピー
Private Shared Sub CustomizeSlicerStyle(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet)'
'スライサーにカスタムスタイルを設定します。   
Dim slicerStyle As ITableStyle = WorkBook.TableStyles.Add("CustomStyle1")
    'カスタムスタイルをSlicerに設定するには、ShowAsAvailableSlicerStyleをtrueに設定します。
    slicerStyle.ShowAsAvailableSlicerStyle = True
    slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Name = "Arial"
    slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Bold = True
    slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Italic = True
    slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Size = 20
    slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Color = GrapeCity.Spreadsheet.Color.FromThemeColor(GrapeCity.Core.ThemeColors.Accent3)
    WorkSheet.Slicers("slicer").Style = slicerStyle
End Sub

スライサーの削除

スプレッドシートからスライサーを削除するには、ISlicerインタフェースのDelete() メソッドを使用します。

また、スライサーのキャッシュとそのすべてのスライサーを削除する場合は、ISlicerCache インタフェースのDelete()メソッドを使用します。

次のサンプルコードは、スプレッドシートからスライサーを削除する方法を示します。

C#
コードのコピー
private static void DeleteSlicer(IWorkbook WorkBook)
{
// スライサーを削除します。
WorkBook.SlicerCaches["slicerCache"].Slicers["slicer"].Delete();
}

Visual Basic
コードのコピー
Private Shared Sub DeleteSlicer(ByVal WorkBook As IWorkbook)
    'スライサーを削除します。
    WorkBook.SlicerCaches("slicerCache").Slicers("slicer").Delete()
End Sub

 


 

 


© MESCIUS inc. All rights reserved.