Obtener Todos los Índices de Filas Ocultas Después de Actualizar el Autofiltro
Escenarios de uso posibles
Cuando aplicas el autofiltrado en las celdas de la hoja, algunas filas se ocultan automáticamente. Pero puede ser que algunas filas ya estén ocultas manualmente por el usuario de Excel y no por un filtro automático. Por lo tanto, es difícil saber qué filas están ocultas por el filtro automático y cuáles están ocultas manualmente por el usuario de Excel. El script Aspose.Cells for Java a través de C++ maneja este problema usando el Array AutoFilter.refresh(hideRows). Este método devuelve los índices de fila de todas las filas que están ocultas por el filtro automático y no manualmente por el usuario de Excel.
Obtener Todos los Índices de Filas Ocultas Después de Actualizar el Autofiltro
Por favor, vea el siguiente código de ejemplo que carga el archivo de Excel de muestra que contiene algunas filas ocultas manualmente por el usuario final de Excel. El código aplica y actualiza el filtro automático usando el método Array AutoFilter.refresh(hideRows), que devuelve los índices de todas las filas ocultas por el filtro automático. Luego, imprime los índices de las filas ocultas en la consola junto con los nombres y valores de las celdas.
Código de muestra
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - Get Hidden Rows After Refreshing AutoFilter</title>
</head>
<body>
<h1>Get Hidden Rows After Refreshing AutoFilter</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</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, Utils } = 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');
const resultDiv = document.getElementById('result');
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiating a Workbook object from file input
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Access first worksheet
const worksheet = workbook.worksheets.get(0);
// Apply autofilter
worksheet.autoFilter.addFilter(0, "Orange");
// True means it will refresh autofilter and return hidden rows.
const rowIndices = worksheet.autoFilter.refresh(true);
console.log("Printing Rows Indices, Cell Names and Values Hidden By AutoFilter.");
console.log("--------------------------");
let output = '<p>Printing Rows Indices, Cell Names and Values Hidden By AutoFilter.</p><pre>';
rowIndices.forEach(r => {
const cell = worksheet.cells.get(r, 0);
console.log(`${r}\t${cell.name}\t${cell.stringValue}`);
output += `${r}\t${cell.name}\t${cell.stringValue}\n`;
});
output += '</pre>';
resultDiv.innerHTML = output;
});
</script>
</html>
Salida de la consola
Printing Rows Indices, Cell Names and Values Hidden By AutoFilter.
\--------------------------
1 A2 Apple
2 A3 Apple
3 A4 Apple
6 A7 Apple
7 A8 Apple
11 A12 Pear
12 A13 Pear