[]
RowFilterBase
• new RowFilterBase(range
)
シートの行をフィルタリングするための行フィルタをサポートする行フィルタベースを表します。
名前 | 型 | 説明 |
---|---|---|
range |
Range |
フィルタ範囲。 |
• extendedRange: Range
行フィルターの拡張範囲を表します。
• range: Range
行フィルタの範囲を表します。
• typeName: string
シリアル化のサポートに使用される型名の文字列を表します。
▸ addFilterItem(col
, condition
): void
指定したフィルタを行フィルタに追加します。
実例
sheet.setRowCount(3);
sheet.setColumnCount(1);
sheet.setArray(0, 0,
[
[ 1 ],
[ 2 ],
[ 3 ]
]);
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, {compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo,expected: '3'});
sheet.rowFilter().addFilterItem(0, condition);
sheet.rowFilter().filter(0);
名前 | 型 | 説明 |
---|---|---|
col |
number |
列インデックス。 |
condition |
Condition | Condition [] |
フィルタリングする条件。 |
void
▸ filter(col?
): void
指定した列をフィルタリングします。
実例
sheet.setRowCount(2);
sheet.setColumnCount(1);
sheet.setArray(0, 0,
[
[ "a" ],
[ "b" ]
]);
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, {compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo,expected: 'a'});
var rowFilter = sheet.rowFilter();
rowFilter.addFilterItem(0, condition);
rowFilter.filter(0);
名前 | 型 | 説明 |
---|---|---|
col? |
number |
フィルタリングする列のインデックス。これを省略した場合、範囲内のすべての列がフィルタリングされます。 |
void
▸ filterButtonVisible(col?
, value?
): any
シート列のフィルタボタンが表示されるかどうかを取得または設定します。
実例
sheet.setArray(2, 2,
[
[ 1, 4 ],
[ 2, 5 ],
[ 3, 6 ]
] );
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(2, 2, 3, 2)));
console.log(sheet.rowFilter().filterButtonVisible()); // true
sheet.rowFilter().filterButtonVisible(2, false);
console.log(sheet.rowFilter().filterButtonVisible(2)); // false
console.log(sheet.rowFilter().filterButtonVisible(3)); // true
名前 | 型 |
---|---|
col? |
number | boolean |
value? |
boolean |
any
パラメーターなし: すべてのフィルタボタンが表示されない場合はfalse、それ以外の場合はtrue。
パラメーター1個(col): 指定した列のフィルタボタンが表示されない場合はfalse、それ以外の場合はtrue。
パラメーター1個(value): <c>GC.Spread.Sheets.Filter.RowFilterBase</c>がすべてのフィルタボタンを表示(true)または非表示(false)に設定します。
パラメーター2個(col、value): <c>GC.Spread.Sheets.Filter.RowFilterBase</c>が指定した列のフィルタボタンを表示(true)または非表示(false)に設定します。
▸ fromJSON(settings
): void
指定したJSON文字列からオブジェクト状態をロードします。
名前 | 型 | 説明 |
---|---|---|
settings |
Object |
逆シリアル化された行フィルタのデータ。 |
void
▸ getFilterItems(col
): Condition
[]
指定した列のフィルタを取得します。
実例
sheet.getCell(0, 0).value("a");
sheet.getCell(0, 1).value("b");
sheet.getCell(1, 0).value("ac");
sheet.getCell(1, 1).value("bd");
sheet.rowFilter( new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range( -1, -1, -1, -1)));
var condition1 = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo,expected: 'a' });
var condition2 = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo,beginsWith: '' });
sheet.rowFilter().addFilterItem(0, condition1);
sheet.rowFilter().addFilterItem(1, condition2);
console.log(sheet.rowFilter().getFilterItems(0)); // 結果は配列、長さは 1、項目は条件 1 に等しいです。
名前 | 型 | 説明 |
---|---|---|
col |
number |
列インデックス。 |
指定した列に属する条件を含むコレクションを返します。
▸ getFilteredItems(): Condition
[]
すべての適用済みフィルタ条件を取得します。
実例
sheet.setRowCount(3);
sheet.setColumnCount(2);
sheet.setArray(0, 0,
[
[ 1, 2 ],
[ 3, 4 ],
[ 5, 6 ]
]);
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.numberCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.greaterThan, expected: 1 });
var condition1 = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.numberCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.greaterThan, expected: 4 });
sheet.rowFilter().addFilterItem(0, condition);
sheet.rowFilter().addFilterItem(1, condition1);
console.log(sheet.rowFilter().getFilteredItems().length); // 0
sheet.rowFilter().filter();
console.log(sheet.rowFilter().getFilteredItems().length); // 2
sheet.rowFilter().removeFilterItems(0);
console.log(sheet.rowFilter().getFilteredItems().length); // 1
sheet.rowFilter().removeFilterItems(1);
console.log(sheet.rowFilter().getFilteredItems().length); // 0
すべての適用済みフィルタ条件を含むコレクションを返します。
▸ getSortState(col
): SortState
現在のソート状態を取得します。
実例
sheet.setArray(0, 0, [
[ 4 ],
[ 3 ],
[ 2 ],
[ 1 ],
[ 0 ]
]);
sheet.rowFilter( new GC.Spread.Sheets.Filter.HideRowFilter( new GC.Spread.Sheets.Range( 0, 0, 5, 1 ) ) );
sheet.rowFilter().addFilterItem( 0, new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.numberCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.greaterThan, expected: 2 }));
sheet.rowFilter().filter(0);
sheet.rowFilter().sortColumn(0, false);
console.log(sheet.rowFilter().getSortState(0)); // 2
名前 | 型 | 説明 |
---|---|---|
col |
number |
列インデックス。 |
現在のフィルタのソート状態。
▸ isFiltered(col?
): boolean
行または指定した列がフィルタリングされているかどうかを示す値を取得します。
実例
// 次のサンプルコードは、isFilteredメソッドを使用します。
activeSheet.setValue(0, 0, "North");
activeSheet.setValue(1, 0, "South");
activeSheet.setValue(2, 0, "East");
activeSheet.setValue(3, 0, "South");
activeSheet.setValue(4, 0, "North");
activeSheet.setValue(5, 0, "North");
activeSheet.setValue(6, 0, "West");
activeSheet.setColumnWidth(0, 80);
// 行フィルタを設定します。
activeSheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(0, 0, 7, 1)));
// ボタン
$("#button1").click(function () {
var rowFilter = spread.getActiveSheet().rowFilter();
if (rowFilter.isFiltered(0)) {
alert("Row-filtering executed for Column1");
} else {
alert("Row-filtering not executed for Column1");
}
});
// ボタンコントロールをページを追加します。
<input type="button" id="button1" value="button1"/>
名前 | 型 |
---|---|
col? |
number |
boolean
パラメーターなし: 一部の行がフィルタリングされている場合はtrue
、それ以外の場合はfalse
。パラメーター1個(col): 指定した列がフィルタリングされている場合はtrue
、それ以外の場合はfalse
。
▸ isRowFilteredOut(row
): boolean
指定した行がフィルタに一致していないかどうかを判定します。
実例
sheet.setRowCount(2);
sheet.setColumnCount(1);
sheet.setArray(0, 0,
[
[ 1 ],
[ 2 ]
] );
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, {compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo,expected: '2'});
sheet.rowFilter().addFilterItem(0, condition);
sheet.rowFilter().filter(0);
sheet.addRows(1, 1);
console.log(sheet.rowFilter().isFiltered()); // true
console.log(sheet.rowFilter().isRowFilteredOut(0)); // true
console.log(sheet.rowFilter().isRowFilteredOut(1)); // false
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
boolean
行がフィルタに一致していない場合はtrue
、それ以外の場合はfalse
。
▸ onFilter(args
): void
列がフィルタリングまたはフィルタリング解除されたときにアクションを実行します。
実例
sheet.setRowCount(3);
sheet.setColumnCount(2);
sheet.setArray(0, 0,
[
[ 1, 2 ],
[ 3, 4 ],
[ 5, 6 ]
]);
function HighLightFilter(range) {
GC.Spread.Sheets.Filter.RowFilterBase.call(this, range);
}
HighLightFilter.prototype = new GC.Spread.Sheets.Filter.RowFilterBase(new GC.Spread.Sheets.Range(-1, -1, -1, -1));
var doFilterCalled = false;
HighLightFilter.prototype.onFilter = function(args) {
if ( args.action === GC.Spread.Sheets.Filter.FilterActionType.filter ) {
doFilterCalled = true;
}
};
sheet.rowFilter(new HighLightFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.numberCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.greaterThan, expected: 1 });
sheet.rowFilter().addFilterItem(0, condition);
sheet.rowFilter().filter();
console.log(doFilterCalled); // true
名前 | 型 | 説明 |
---|---|---|
args |
IFilteredArgs |
action、sheet、range、filteredRows、filteredOutRows、columnsを含むオブジェクト。 |
void
▸ openFilterDialog(filterButtonHitInfo
): void
ユーザーがフィルタボタンをクリックしたときにフィルタダイアログを開きます。
実例
sheet.setRowCount(3);
sheet.setColumnCount(2);
sheet.setArray(0, 0,
[
[ 1, 2 ],
[ 3, 4 ],
[ 5, 6 ]
]);
function HighLightFilter(range) {
GC.Spread.Sheets.Filter.RowFilterBase.call(this, range);
}
HighLightFilter.prototype = new GC.Spread.Sheets.Filter.RowFilterBase(new GC.Spread.Sheets.Range(-1, -1, -1, -1));
HighLightFilter.prototype.openFilterDialog = function(args) {
console.log(args.row, args.col);
};
sheet.rowFilter(new HighLightFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
名前 | 型 | 説明 |
---|---|---|
filterButtonHitInfo |
IFilterButtonHitInfo |
フィルタボタンに関するヒットテスト情報。 |
void
▸ removeFilterItems(col
): void
指定したフィルタを削除します。
実例
sheet.setRowCount(3);
sheet.setColumnCount(1);
sheet.setArray(0, 0,
[
[ 1 ],
[ 2 ],
[ 3 ]
]);
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range( -1, -1, -1, -1)));
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, {compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo, expected: '3'});
var rowFilter = sheet.rowFilter();
rowFilter.addFilterItem(0, condition);
rowFilter.removeFilterItems(0);
名前 | 型 | 説明 |
---|---|---|
col |
number |
列インデックス。 |
void
▸ reset(): void
すべてのフィルタをクリアします。
実例
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
sheet.rowFilter().reset();
console.log(sheet.rowFilter().isFiltered()); // false
void
▸ sortColumn(col
, ascending
): void
指定した列を指定した順にソートします。
実例
sheet.setArray(0, 0, [
[ 4 ],
[ 3 ],
[ 2 ],
[ 1 ],
[ 0 ]
]);
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(0, 0, 5, 1)));
sheet.rowFilter().addFilterItem(0, new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.numberCondition, { compareType: GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.greaterThan, expected: 2 }));
sheet.rowFilter().filter(0);
sheet.rowFilter().sortColumn(0, true);
名前 | 型 | 説明 |
---|---|---|
col |
number |
列インデックス。 |
ascending |
boolean |
昇順にソートする場合、true に設定します。 |
void
▸ toJSON(): Object
オブジェクト状態をJSON文字列に保存します。
Object
行フィルタのデータ。
▸ unfilter(col?
): void
指定した列からフィルタを削除します。
実例
sheet.setRowCount(2);
sheet.setColumnCount(1);
sheet.setArray(0, 0,
[
[ "a" ],
[ "b" ]
]);
sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(-1, -1, -1, -1)));
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, {compareType: GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo,expected: 'a'});
var rowFilter = sheet.rowFilter();
rowFilter.addFilterItem(0, condition);
rowFilter.unfilter();
名前 | 型 |
---|---|
col? |
number |
void