Eliminar filas y columnas en blanco en Excel usando Java

Podemos eliminar fácilmente filas y columnas en blanco de las hojas de cálculo de Excel mediante programación. En este artículo, aprenderemos cómo eliminar filas y columnas en blanco en Excel usando Java.

En este artículo se tratarán los siguientes temas:

API de Java para eliminar filas y columnas en blanco en Excel

Para eliminar filas y columnas en blanco de los archivos XLSX, utilizaremos la API Aspose.Cells for Java. Descargue el JAR de la API o simplemente agregue la siguiente configuración pom.xml en una aplicación Java basada en Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.11</version>
</dependency>

Eliminar filas en blanco en Excel usando Java

Podemos eliminar filas en blanco de las hojas de cálculo de Excel mediante programación siguiendo los pasos que se indican a continuación:

  • En primer lugar, cargue un archivo de Excel usando la clase Libro de trabajo.
  • A continuación, llame al método Workbook.getWorksheets() y obtenga hojas de trabajo en el objeto WorksheetCollection.
  • Luego, acceda a la hoja de trabajo que tiene las filas en blanco ya sea por su índice (basado en cero) o por nombre.
  • Después de eso, llame al método Cells.deleteBlankRows() para eliminar las filas en blanco de la hoja de trabajo a la que se accede.
  • Finalmente, llame al método save() con la ruta del archivo de salida para guardar el archivo de salida.

El siguiente código de ejemplo muestra cómo quitar filas en blanco de Excel usando Java.

// Cargue un archivo de Excel existente.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Obtenga la colección de hojas de trabajo en la hoja de cálculo.
WorksheetCollection sheets = workbook.getWorksheets();

// Obtenga la primera hoja de trabajo de WorksheetCollection por índice.
Worksheet sheet = sheets.get(0);
// O por nombre.
// Hoja de trabajo hoja = hojas.get("Hoja1");

// Elimine las filas en blanco de la hoja de trabajo.
sheet.getCells().deleteBlankRows();

// Guarde el archivo de Excel actualizado.
workbook.save("C:\\Files\\Cells\\output.xlsx");
Eliminar filas en blanco en Excel usando Java.

Eliminar filas en blanco en Excel usando Java.

De manera similar, podemos eliminar filas en blanco de todas las hojas de trabajo en un documento de Excel. Simplemente iteramos sobre WorksheetCollection y llamamos al método deleteBlankRows() en cada hoja de trabajo como se muestra en el siguiente ejemplo de código:

// Abra un archivo de Excel existente.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Obtener colección de hojas de trabajo
WorksheetCollection worksheets = workbook.getWorksheets();

// Iterar sobre las hojas de trabajo.
for (int i=0; i<worksheets.getCount(); i++)
{
    // Acceda a las hojas de trabajo una por una
    Worksheet sheet = worksheets.get(i);
  
    // Elimine las filas en blanco de la hoja de cálculo.
    sheet.getCells().deleteBlankRows();
}

// Guarde el archivo de Excel actualizado.
workbook.save("C:\\Files\\Cells\\output.xlsx");

Eliminar columnas en blanco en Excel usando Java

Podemos eliminar columnas en blanco de las hojas de cálculo de Excel mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cargue un archivo de Excel usando la clase Libro de trabajo.
  • A continuación, llame al método Workbook.getWorksheets() y obtenga hojas de trabajo en el objeto WorksheetCollection.
  • Luego, acceda a la hoja de trabajo que tiene las columnas en blanco ya sea por su índice (basado en cero) o por nombre.
  • Después de eso, llame al método Cells.deleteBlankColumns() para eliminar las columnas en blanco de la hoja de trabajo a la que se accede.
  • Finalmente, llame al método save() con la ruta del archivo de salida para guardar el archivo de salida.

El siguiente código de ejemplo muestra cómo quitar columnas en blanco de Excel usando Java.

// Abra un archivo de Excel existente.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Obtenga la colección de hojas de trabajo en la hoja de cálculo.
WorksheetCollection sheets = workbook.getWorksheets();

// Obtenga la primera hoja de trabajo de WorksheetCollection por índice.
Worksheet sheet = sheets.get(2);

// Elimina las columnas en blanco.
sheet.getCells().deleteBlankColumns(options);

// Guarde el archivo de Excel actualizado.
workbook.save("C:\\Files\\Cells\\output_DeleteBlankColumns.xlsx");	
Eliminar columnas en blanco en Excel usando Java.

Eliminar columnas en blanco en Excel usando Java.

Actualizar referencias automáticamente al eliminar filas y columnas en blanco

Eliminar filas o columnas en blanco puede romper las referencias en fórmulas, gráficos y tablas. Por ejemplo, la celda A1 en la Hoja2 tiene una fórmula =Hoja1!C7 que hace referencia a la celda C7 de la primera hoja de cálculo, como se muestra en la siguiente figura.

Una celda A1 en la Hoja2 se refiere a un valor de la celda C7 en la Hoja1.

Una celda A1 en la Hoja2 se refiere a un valor de la celda C7 en la Hoja1.

Si eliminamos filas en blanco en Sheet1, el valor de C7 (650000) se moverá a la celda C6. Pero la fórmula (=Sheet1!C7) no se actualizará y la celda A1 mostrará el valor de C7, que será 550000 en este caso. Podemos evitar este problema configurando DeleteOptions.setUpdateReference en verdadero. Se asegurará de que las referencias se actualicen mientras se eliminan las filas en blanco.

Podemos actualizar las referencias automáticamente mientras eliminamos las filas en blanco de las hojas de cálculo de Excel mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cargue un archivo de Excel usando la clase Libro de trabajo.
  • A continuación, llame al método Workbook.getWorksheets() y obtenga hojas de trabajo en el objeto WorksheetCollection.
  • Luego, acceda a la hoja de trabajo ya sea por índice (basado en cero) o por el nombre que tiene las filas en blanco.
  • A continuación, cree una instancia de la clase DeleteOptions
  • Luego, llama a setUpdateReferences() a verdadero. Actualizará las referencias en otras hojas mientras elimina las filas en blanco.
  • Después de eso, llame al método Cells.deleteBlankRows() con el objeto DeleteOptions como argumento para eliminar las filas en blanco de la hoja de trabajo a la que se accede.
  • Finalmente, llame al método save() con la ruta del archivo de salida para guardar el archivo de salida.

El siguiente código de ejemplo muestra cómo actualizar las referencias mientras se eliminan las filas en blanco en Excel.

// Abra un archivo de Excel existente.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Obtenga la colección de hojas de trabajo en la hoja de cálculo.
WorksheetCollection sheets = workbook.getWorksheets();

// Obtenga la primera hoja de trabajo de WorksheetCollection por índice.
Worksheet sheet = sheets.get(0);

// Esta opción asegurará las referencias (en fórmulas, gráficos)
// se actualizan al eliminar filas en blanco.
DeleteOptions options = new DeleteOptions();
options.setUpdateReference(true);

// Elimine las filas en blanco de la hoja de trabajo.
sheet.getCells().deleteBlankRows(options);

// Guarde el archivo de Excel actualizado.
workbook.save("C:\\Files\\Cells\\output_UpdateReferencesAutomatically.xlsx");

Del mismo modo, podemos actualizar las referencias mientras eliminamos las columnas en blanco en Excel. Sin embargo, solo necesitamos llamar al método deleteBlankColumns() con DeleteOptions como argumento.

Obtenga una licencia gratis

Pruebe la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, hemos aprendido cómo eliminar filas y columnas en Excel usando Java. También hemos visto cómo actualizar referencias mientras eliminamos filas y columnas mediante programación. Además, puede obtener más información sobre Aspose.Cells para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también