PowerTools SPREAD for Windows Forms 8.0J > 開発者ガイド > データ操作 > ソート > 行/列/セル範囲のソート |
指定した列の値に基づき、シートのすべての行を並べ替えるケースが一般的ですが、製品では、行の値をキーに列を並び替えることもできます。
SheetViewクラスのSortRows(またはSortColumns)メソッドを使用すると、1つ、あるいは複数の列をキーに行(または行をキーに列)を並び替えることができます。この方法では、表示されているデータのみが並び替えられ、データモデルは影響を受けません。これらのメソッドには、複数のオーバーロードが提供され、行または列をさまざまな方法で並べ替えることができます。これらのメソッドの引数にSortInfoオブジェクトを指定することで、並べ替えの方法をカスタマイズできます。
シートのすべての行、または列を並び替えるのではなく、特定のセル範囲のデータだけを並べ替えることができます。たとえば、値の合計を表示する最終行(集計行)を除外して行を並び替えたい場合などに便利です。
特定のデータ範囲を並べ替える方法は2つあります。シートがデータソースに連結されている場合、SheetViewクラスのSortRows、またはSortColumnsメソッドを使用します。これらのメソッドで提供されるオーバーロードには、引数で並べ替える範囲の先頭行(または先頭列)、および行数(または列数)を指定できるものがあります。データソースに非連結なデータの場合、SortRangeメソッドを使用します。
SortRangeメソッドは、非連結データだけを対象に実行できます。このメソッドを使用すると、データモデルでデータを移動し、データとともにセルレベルのスタイルも移動します。このメソッドは、データソースに連結されたデータに対して使用することは想定されていません。なぜなら、このメソッドは行全体、または列全体とは限らないセル範囲のデータを移動するため、連結されたデータに適用した場合、データソースの中のあるデータを、行(レコード)から切り離して移動してしまうことを意味します。
SortRangeメソッドの引数に、SortInfoオブジェクトの配列を指定すると、データを並べ替えるための複数のキーを指定できます。
行を並べ替えるには、SheetViewクラスのSortRowsメソッド、列を並べ替えるにはSortColumnsメソッドを使用します。
次のサンプルコードは、2列目の値に従い、シートのすべての行を並べ替えます。ソートインジケータの表示を有効に設定しています。
C# |
コードのコピー
|
---|---|
fpSpread1.ActiveSheet.SortRows(1, true, true); |
Visual Basic |
コードのコピー
|
---|---|
FpSpread1.ActiveSheet.SortRows(1, True, True) |
次のサンプルコードは、行の値をキーに列を並び替えます。SortInfoオブジェクトを作成し、1行目の値をキーに降順で並び替えることを指定します。13列目から231列目までの範囲を並べ替えます。
C# |
コードのコピー
|
---|---|
FarPoint.Win.Spread.SortInfo[] sorter = new FarPoint.Win.Spread.SortInfo[1]; sorter[0] = new FarPoint.Win.Spread.SortInfo(0, false, System.Collections.Comparer.Default); fpSpread1.ActiveSheet.SortColumns(12, 230, sorter); |
Visual Basic |
コードのコピー
|
---|---|
Dim sorter(1) As FarPoint.Win.Spread.SortInfo sorter(0) = New FarPoint.Win.Spread.SortInfo(0, False, System.Collections.Comparer.Default) FpSpread1.ActiveSheet.SortColumns(12, 230, sorter) |