En este artículo, explicaré cómo eliminar filas y columnas en blanco en un archivo de Excel usando C#. También explicaré cómo actualizar las referencias automáticamente (utilizadas en fórmulas, gráficos y tablas) al eliminar filas y columnas en blanco.

API de C# para eliminar filas y columnas en blanco

Aspose.Cells for .NET es una conocida API de manipulación de hojas de cálculo que le permite crear y procesar archivos de Excel desde sus aplicaciones .NET. La API le permite eliminar filas y columnas en blanco en los archivos de Excel en unas pocas líneas de código. Puede descargar los archivos binarios de la API o instalarlos usando NuGet.

PM> Install-Package Aspose.Cells

Eliminar filas en blanco en Excel usando C#

Los siguientes son los pasos para eliminar todas las filas en blanco en Excel usando C#.

  • Abra un archivo de Excel usando el objeto Libro de trabajo.
  • Acceda a la hoja de trabajo que tiene las filas en blanco. Se puede acceder a la hoja de trabajo por índice (basado en cero) o por nombre.
  • Llame al método Cells.DeleteBlankRows() para eliminar todas las filas en blanco que no contienen datos.

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

using Aspose.Cells;

// Abra un archivo de Excel existente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Obtenga la colección de hojas de trabajo en la hoja de cálculo.
WorksheetCollection sheets = wb.Worksheets;

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

// Elimine las filas en blanco de la hoja de cálculo.
sheet.Cells.DeleteBlankRows();

// Guarde el archivo de Excel.
wb.Save("SampleOutput.xlsx");
Eliminar filas en blanco

Fig. 1: Eliminar filas en blanco

Tenga en cuenta que el método Cells.DeleteBlankRows elimina las filas en blanco incluso si se les aplica algún tipo de formato. También elimina las filas en blanco formateadas debajo de sus datos.

Eliminar filas en blanco formateadas

Fig. 2: Eliminar filas en blanco formateadas

Si desea eliminar filas en blanco de todas las hojas de trabajo en un documento de Excel, simplemente itere sobre WorksheetCollection y llame al método DeleteBlankRows en cada hoja de trabajo como se muestra en el siguiente código:

// Abra un archivo de Excel existente.
Workbook workbook = new Workbook("SampleInput.xlsx");

// Iterar sobre las hojas de trabajo.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // Elimine las filas en blanco de la hoja de cálculo.
    sheet.Cells.DeleteBlankRows();
}

// Guarde el archivo de Excel.
workbook.Save("SampleOutput.xlsx");

Actualizar referencias automáticamente al eliminar filas en blanco

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

Una celda en Sheet2 se refiere a un valor en Sheet1.

Fig. 3: Una celda en Sheet2 se refiere a un valor en Sheet1.

Si eliminamos filas en blanco en Sheet1, el valor lima@gmail.com se moverá a la celda C1. Pero la fórmula (=Sheet1!C3) no se actualizará y la celda B2 contendrá un valor no válido como se muestra a continuación.

Después de eliminar las filas en blanco, la fórmula en la celda B2 no se ha actualizado.

Fig. 4: después de eliminar las filas en blanco, la fórmula en la celda B2 no se ha actualizado.

Podemos evitar este problema usando la propiedad DeleteOptions.UpdateReference y estableciéndola en verdadero. Se asegurará de que las referencias se actualicen mientras se eliminan las filas en blanco. El siguiente código de ejemplo muestra cómo usar la propiedad DeleteOptions.UpdateReference.

// Abra un archivo de Excel existente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Obtenga la colección de hojas de trabajo en la hoja de cálculo.
WorksheetCollection sheets = wb.Worksheets;

// Obtenga la primera hoja de trabajo de WorksheetCollection por índice.
Worksheet sheet = sheets[0];

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

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

// Guarde el archivo de Excel.
wb.Save("SampleOutput.xlsx");

Como se muestra en la siguiente imagen, la fórmula se ha actualizado y la celda B2 contiene un valor válido.

La fórmula se ha actualizado y la celda contiene un valor válido.

Fig. 5: la fórmula se ha actualizado y la celda contiene un valor válido.

Eliminar columnas en blanco en Excel usando C#

Los pasos para eliminar columnas en blanco son los mismos que para eliminar filas en blanco. Usamos el método Cells.DeleteBlankColumns para eliminar todas las columnas en blanco que no contienen datos. El siguiente código de ejemplo muestra cómo eliminar filas y columnas en blanco en C#.

// Abra un archivo de Excel existente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Obtenga la colección de hojas de trabajo en la hoja de cálculo.
WorksheetCollection sheets = wb.Worksheets;

// Obtenga la primera hoja de trabajo de WorksheetCollection por índice.
Worksheet sheet = sheets[0];

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

// Elimine las filas y columnas en blanco.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// Calcular fórmulas del libro de trabajo.
wb.CalculateFormula();

// Guarde el archivo de Excel.
wb.Save("SampleOutput.xlsx");
Eliminar filas y columnas en blanco

Fig. 6: Eliminar filas y columnas en blanco

Conclusión

En este artículo, aprendió cómo eliminar filas y columnas en blanco en un archivo de Excel usando C#. Además, ha aprendido a actualizar referencias (utilizadas en fórmulas, gráficos y tablas) automáticamente mientras elimina filas y columnas en blanco. Consulte la documentación de Aspose.Cells para .NET para obtener más información. Si tiene alguna pregunta, no dude en publicarla en nuestro Foro de soporte. Les responderemos en unas horas.

Ver también