SPREAD for ASP.NET 10.0J サンプルコード集 > フィルタリング > ドロップダウンリストの項目を変更する |
セルのデータ以外にドロップダウンリストに表示する項目は、FilterListBehavior列挙体を使用して設定します。
初期設定の表示:
「(Blanks)」「(NonBlanks)」を表示しない:
SetTestData(FpSpread1.Sheets[0]); //列ヘッダ1行目を列見出し、2行目をフィルタに設定します FpSpread1.ColumnHeader.RowCount = 2; FpSpread1.ColumnHeader.AutoTextIndex = 0; FpSpread1.ColumnHeader.AutoFilterIndex = 1; //非表示フィルタを設定します HideRowFilter filter = new HideRowFilter(FpSpread1.Sheets[0]); FpSpread1.Sheets[0].RowFilter = filter; //未入力/入力済みセルのための項目を表示しません(項目をソートしません) FpSpread1.Sheets[0].RowFilter.AddColumn(new FilterColumnDefinition(0, FilterListBehavior.SortNoSort)); //参考まで:未入力セルのための項目を表示します(出現頻度で項目をソートします) //FpSpread1.Sheets[0].RowFilter.AddColumn(new FilterColumnDefinition(0, FilterListBehavior.SortByMostOccurrences | FilterListBehavior.Blank));
SetTestData(FpSpread1.Sheets(0)) '列ヘッダ1行目を列見出し、2行目をフィルタに設定します FpSpread1.ColumnHeader.RowCount = 2 FpSpread1.ColumnHeader.AutoTextIndex = 0 FpSpread1.ColumnHeader.AutoFilterIndex = 1 '非表示フィルタを設定します Dim filter As New HideRowFilter(FpSpread1.Sheets(0)) FpSpread1.Sheets(0).RowFilter = filter '未入力/入力済みセルのための項目を表示しません(項目をソートしません) FpSpread1.Sheets(0).RowFilter.AddColumn(New FilterColumnDefinition(0, FilterListBehavior.SortNoSort)) '参考まで:未入力セルのための項目を表示します(出現頻度で項目をソートします) 'FpSpread1.Sheets(0).RowFilter.AddColumn(New FilterColumnDefinition(0, FilterListBehavior.SortByMostOccurrences Or FilterListBehavior.Blank))
この例では、テストデータの生成に以下のメソッドを使用しています。
public void SetTestData(SheetView sheet) { sheet.RowCount = 10; string tab = "\t", ent="\r\n"; string data = "2015/12/1" + tab + "ZZZ" + tab + "1000" + ent + "2016/3/31" + tab + "YYY" + tab + "2000" + ent + "2016/3/31" + tab + "XXX" + tab + "3000" + ent; sheet.SetClip(0, 0, 3, 3, data); DateTimeCellType dateCell = new DateTimeCellType() { FormatString = "yyyy-M-d" }; sheet.Columns[0].CellType = dateCell; }
Public Sub SetTestData(sheet As SheetView) sheet.RowCount = 10 Dim tab As String = vbTab, ent As String = vbNewLine Dim data As String = "2015/12/1" + tab + "ZZZ" + tab + "1000" + ent _ + "2016/3/31" + tab + "YYY" + tab + "2000" + ent _ + "2016/3/31" + tab + "XXX" + tab + "3000" + ent sheet.SetClip(0, 0, 3, 3, data) Dim dateCell As New DateTimeCellType() With {.FormatString = "yyyy-M-d"} sheet.Columns(0).CellType = dateCell End Sub