GcSpreadSheetは、ワークシート内データの並べ替えに対応しています。本機能を使用すると、データを効率的に整理でき、データを迅速に解析することができます。
ソート操作は、セル値のデータ型に基づいて実行されます。例えば、DateTimeセル型にソートを適用すると、データが日付に基づいて並べ替えられます。ただし、文字列型のデータを含むセルの場合、データがアルファベット順に並べ替えられます。
ISortインタフェースのApplyメソッドを使用することで、1列や複数列のデータをソートできます。ソート順は、昇順(AからZ、0から9)または降順(Zから0)のいずれかに設定できます。SortOrder列挙体を使用して、並べ替え順序を指定できます。
データをセル値(テキスト、数値、など)、フォント色、セル色、条件付き書式アイコンを元にソートできます。ソートフィールドをISortFieldsインタフェースのAddメソッドを使用して指定でき、ソート操作の詳細を本インタフェースのSortOnプロパティで設定できます。セル値にカスタムソートを適用するには、ISortFieldインタフェースのDataOptionプロパティを使用します。
テキストを数値として並べ替えるには、SortDataOption列挙体をTextAsNumbersに設定します。
コードのコピー
|
|
---|---|
// ワークシートでのソート操作(列の並べ替え)。 GcSpreadSheet.Workbook.Worksheets[1].Cells[0, 0].Value = 123; GcSpreadSheet.Workbook.Worksheets[1].Cells[1, 0].Value = 123; GcSpreadSheet.Workbook.Worksheets[1].Cells[2, 0].Value = 832; GcSpreadSheet.Workbook.Worksheets[1].Cells[3, 0].Value = 50; GcSpreadSheet.Workbook.Worksheets[1].Cells[4, 0].Value = 123; GcSpreadSheet.Workbook.Worksheets[1].Cells[5, 0].Value = 234; GcSpreadSheet.Workbook.Worksheets[1].Cells[6, 0].Value = 452; GcSpreadSheet.Workbook.Worksheets[1].Cells[7, 0].Value = 234; GcSpreadSheet.Workbook.Worksheets[1].Cells[8, 0].Value = 456; GcSpreadSheet.Workbook.Worksheets[1].Cells[9, 0].Value = 546; GcSpreadSheet.Workbook.Worksheets[1].Name = "ワークシートでのソート操作"; // ソートのヘッダーを「No」に設定します。そうでない場合、行1はヘッダー行と見なされ、データは列ソートでソートされません。 GcSpreadSheet.Workbook.Worksheets[1].Sort.Header = YesNoGuess.No; // 列Aの値を昇順で並べ替えます。 GcSpreadSheet.Workbook.Worksheets[1].Sort.SortFields.Add("A", SortOn.Value, SortOrder.Ascending); GcSpreadSheet.Workbook.Worksheets[1].Sort.Apply(); |
コードのコピー
|
|
---|---|
' ワークシートでのソート操作(列の並べ替え)。 GcSpreadSheet.Workbook.Worksheets(1).Cells(0, 0).Value = 123 GcSpreadSheet.Workbook.Worksheets(1).Cells(1, 0).Value = 123 GcSpreadSheet.Workbook.Worksheets(1).Cells(2, 0).Value = 832 GcSpreadSheet.Workbook.Worksheets(1).Cells(3, 0).Value = 50 GcSpreadSheet.Workbook.Worksheets(1).Cells(4, 0).Value = 123 GcSpreadSheet.Workbook.Worksheets(1).Cells(5, 0).Value = 234 GcSpreadSheet.Workbook.Worksheets(1).Cells(6, 0).Value = 452 GcSpreadSheet.Workbook.Worksheets(1).Cells(7, 0).Value = 234 GcSpreadSheet.Workbook.Worksheets(1).Cells(8, 0).Value = 456 GcSpreadSheet.Workbook.Worksheets(1).Cells(9, 0).Value = 546 GcSpreadSheet.Workbook.Worksheets(1).Name = "ワークシートでのソート操作" ' ソートのヘッダーを「No」に設定します。そうでない場合、行1はヘッダー行と見なされ、データは列ソートでソートされません。 GcSpreadSheet.Workbook.Worksheets(1).Sort.Header = YesNoGuess.No ' 列Aの値を昇順で並べ替えます。 GcSpreadSheet.Workbook.Worksheets(1).Sort.SortFields.Add("A", SortOn.Value, SortOrder.Ascending) GcSpreadSheet.Workbook.Worksheets(1).Sort.Apply() |
オートフィルタでソートを実行すると、項目を順序に並べ替えるとともに、指定基準に基づいて、同じプロパティを持つ項目をグループ化することもできます。
IRangeインタフェースのAutoFilterメソッドを使用することで、ワークシートでの選択範囲用のオートフィルタを作成できます。このメソッドを使用した後、ISort インタフェースのApplyメソッドを使用してソート操作を適用できます。オートフィルタを使用してワークシートを並べ替える際、SortOrder列挙体を使用することで、ソート順序を昇順や降順として指定できます。
コードのコピー
|
|
---|---|
// AutoFilterによるソート。 GcSpreadSheet.Workbook.Worksheets[0].Range("B2").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("B3").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("B4").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[0].Range("B5").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[0].Range("B6").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("B7").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[0].Range("B8").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[0].Range("B9").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("C2").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("C3").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[0].Range("C4").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[0].Range("C5").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("C6").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[0].Range("C7").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[0].Range("C8").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[0].Range("C9").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("D2").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[0].Range("D3").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("D4").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[0].Range("D5").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[0].Range("D6").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Range("D7").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[0].Range("D8").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[0].Range("D9").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[0].Name = " AutoFilterによるソートr"; // この場合、「Banana」と「Apple」の値を含む範囲をフィルタリングしています。 // フィルタリング後のデータが昇順に並べ替えられます。 GcSpreadSheet.Workbook.Worksheets[0].Range("B1:D10").AutoFilter(0, "Banana", GrapeCity.Spreadsheet.AutoFilterOperator.Or, "Apple"); GcSpreadSheet.Workbook.Worksheets[0].AutoFilter.Sort.SortFields.Add("B1", GrapeCity.Spreadsheet.SortOn.Value, SortOrder.Ascending); GcSpreadSheet.Workbook.Worksheets[0].AutoFilter.Sort.Apply(); |
コードのコピー
|
|
---|---|
' AutoFilterによるソート。 GcSpreadSheet.Workbook.Worksheets(0).Range("B2").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("B3").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("B4").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(0).Range("B5").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(0).Range("B6").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("B7").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(0).Range("B8").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(0).Range("B9").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("C2").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("C3").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(0).Range("C4").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(0).Range("C5").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("C6").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(0).Range("C7").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(0).Range("C8").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(0).Range("C9").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("D2").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(0).Range("D3").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("D4").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(0).Range("D5").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(0).Range("D6").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Range("D7").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(0).Range("D8").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(0).Range("D9").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(0).Name = " AutoFilterによるソート" ' この場合、「Banana」と「Apple」の値を含む範囲をフィルタリングしています。 ' フィルタリング後のデータが昇順に並べ替えられます。 GcSpreadSheet.Workbook.Worksheets(0).Range("B1:D10").AutoFilter(0, "Banana", GrapeCity.Spreadsheet.AutoFilterOperator.Or, "Apple") GcSpreadSheet.Workbook.Worksheets(0).AutoFilter.Sort.SortFields.Add("B1", GrapeCity.Spreadsheet.SortOn.Value, SortOrder.Ascending) GcSpreadSheet.Workbook.Worksheets(0).AutoFilter.Sort.Apply() |