Saltar al contenido

Epplus elimina todas las filas de una fila específica

Este team de trabajo ha pasado horas buscando para darle respuesta a tu búsqueda, te ofrecemos la respuestas de modo que nuestro objetivo es serte de mucha apoyo.

Solución:

Sé que es antiguo, pero no pude encontrar ninguna solución, así que hice una por mi cuenta. Está verificando la última fila si está vacía y, en caso afirmativo, la elimina y hace esto hasta que encuentra una fila que no está vacía. (no vacío significa aquí: todas las columnas en esta fila tienen algún valor)

worksheet.TrimLastEmptyRows();

public static void TrimLastEmptyRows(this ExcelWorksheet worksheet)
    
        while (worksheet.IsLastRowEmpty())
            worksheet.DeleteRow(worksheet.Dimension.End.Row);
    

public static bool IsLastRowEmpty(this ExcelWorksheet worksheet)
    
        var empties = new List();

        for (int i = 1; i <= worksheet.Dimension.End.Column; i++)
        
            var rowEmpty = worksheet.Cells[worksheet.Dimension.End.Row, i].Value == null ? true : false;
            empties.Add(rowEmpty);
        

        return empties.All(e => e);
    

La solución anterior es eliminar las últimas filas vacías en el archivo. Esto no funcionará si el archivo tiene filas vacías en medio de la lista de filas en alguna parte.

A continuación se muestra la solución para identificar las filas vacías en el medio de la lista de filas.

Usé una combinación de las anteriores y las mías para eliminar filas vacías al final de la lista de filas y filas vacías en el medio de la lista de filas

 private void TrimEmptyRows(ExcelWorksheet worksheet)
    
        //loop all rows in a file
        for (int i = worksheet.Dimension.Start.Row; i <= 
       worksheet.Dimension.End.Row; i++)
        
            bool isRowEmpty = true;
            //loop all columns in a row
            for (int j = worksheet.Dimension.Start.Column; j <= worksheet.Dimension.End.Column; j++)
            
                if (worksheet.Cells[i, j].Value != null)
                
                    isRowEmpty = false;
                    break;
                
            
            if (isRowEmpty)
            
                worksheet.DeleteRow(i);
            
        
     

Nos puedes secundar nuestro trabajo escribiendo un comentario o puntuándolo te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *