Appliquer un filtre avancé de Microsoft Excel pour afficher les enregistrements répondant à des critères complexes
Scénarios d’utilisation possibles
Microsoft Excel vous permet d’appliquer le Filtre avancé sur les données de la feuille pour afficher les enregistrements répondant à des critères complexes. Vous pouvez appliquer le filtre avancé via la commande Données > Avancé comme montré dans cette capture d’écran.

Le script Aspose.Cells for Java via C++ permet également d’appliquer le Filtre Avancé en utilisant la méthode Worksheet.advanced_Filter(). Tout comme Microsoft Excel, il accepte les paramètres suivants.
isFilter
Indique s’il y a filtrage de la liste sur place.
plageListe
La plage de liste.
criteriaRange
La plage de critères.
copyTo
La plage où copier les données.
uniqueRecordOnly
Afficher ou copier uniquement les lignes uniques.
Appliquer un filtre avancé de Microsoft Excel pour afficher les enregistrements répondant à des critères complexes
Le code exemple suivant applique le filtre avancé sur le Fichier Excel d’exemple et génère le Fichier Excel de sortie. La capture d’écran montre les deux fichiers pour comparaison. Comme vous pouvez le voir dans la capture, les données ont été filtrées dans le fichier Excel de sortie selon des critères complexes.

Code d’exemple
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Advanced Filter Example</title>
</head>
<body>
<h1>Advanced Filter Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx" />
<button id="runExample">Run Advanced Filter</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
if (!fileInput.files.length) {
document.getElementById('result').innerHTML = '<p style="color: red;">Please select an Excel file (sampleAdvancedFilter.xlsx).</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
const wb = new Workbook(new Uint8Array(arrayBuffer));
const ws = wb.worksheets.get(0);
// Apply advanced filter on range A5:D19 with criteria A1:D2, filter in place, include all records (not unique)
ws.advanced_Filter(true, "A5:D19", "A1:D2", "", false);
const outputData = wb.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'outputAdvancedFilter.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Filtered Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Advanced filter applied successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>