複雑な基準を満たすレコードを表示するためにMicrosoft Excelの高度なフィルタを適用する方法

可能な使用シナリオ

Microsoft Excelでは、ワークシートデータに高度なフィルタを適用して複雑な基準を満たすレコードを表示できます。このスクリーンショットに示すように、Microsoft Excelではデータ > 高度なフィルタのコマンドを使用して高度なフィルタを適用できます。

todo:image_alt_text

Aspose.Cellsを使用すると、Worksheet.advancedFilter()メソッドを使用して高度なフィルタを適用することができます。Microsoft Excelと同様に、このメソッドは以下のパラメータを受け入れます。

isFilter

リストをその場でフィルタ処理するかどうかを示します。

listRange

リストの範囲。

criteriaRange

基準の範囲。

copyTo

データをコピーする範囲。

uniqueRecordOnly

唯一の行を表示またはコピーします。

複雑な基準を満たすレコードを表示するMicrosoft Excelの高度なフィルタの適用

次のサンプルコードは、Sample Excel File に高度なフィルタを適用し、Output Excel File を生成しています。スクリーンショットでは、サンプルExcelファイルと出力Excelファイルを比較したものが表示されています。スクリーンショットの内側を見ると、出力Excelファイル内でデータが複雑な条件に従ってフィルタリングされているのがわかります。

todo:image_alt_text

サンプルコード

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Load your source workbook
Workbook wb = new Workbook(srcDir + "sampleAdvancedFilter.xlsx");
// Access first worksheet
Worksheet ws = wb.getWorksheets().get(0);
// Apply advanced filter on range A5:D19 and criteria range is A1:D2
// Besides, we want to filter in place
// And, we want all filtered records not just unique records
ws.advancedFilter(true, "A5:D19", "A1:D2", "", false);
// Save the workbook in xlsx format
wb.save(outDir + "outputAdvancedFilter.xlsx", SaveFormat.XLSX);