Evitando columnas y celdas vacías.
Estoy utilizando laravel-excel para importar una gran cantidad de datos que se encuentran en hojas de cálculo. Estas hojas de cálculo tienen la primera columna y las primeras 3 filas vacías (como en la imagen de abajo) y esto está causando un resultado inesperado al imprimir en pantalla:
Array ( [] => )
Array ( [] => )
Array ( [] => Email )
Array ( [] => jsimpson@email.com )
Array ( [] => spider@man.com )
Array ( [] => im@legend.com )
Si muevo manualmente el contenido de la tabla hacia la izquierda y hacia arriba, todo ocurre como debería:
Array ( [firstname] => John [lastname] => Simpson [age] => 36 [email] => jsimpson@email.com )
...
¿Cómo evitar estas columnas y celdas vacías o moverlas?
Ejemplo de la hoja de cálculo:
Mi código:
$row['firstname'],
'last_name' => $row['lastname'],
'age' => $row['age'],
'email' => $row['email'],
]);
}
}
davy.ai
El problema aquí es que la preocupación
WithHeadingRow
asume que la primera fila de la hoja de cálculo contiene encabezados para cada columna, y por lo tanto ignora esa fila al importar los datos. Sin embargo, parece que en este caso, la primera fila no se utiliza como fila de encabezado y en su lugar, contiene celdas vacías.Para evitar las celdas vacías, puedes utilizar la preocupación
FromView
en lugar de la preocupaciónWithHeadingRow
. Esto te permitirá saltar las primeras filas que contienen celdas vacías y comenzar a importar datos desde la primera fila con datos reales.Aquí tienes un ejemplo de cómo modificar tu código para utilizar la preocupación
FromView
:En este ejemplo, utilizamos la preocupación
FromView
para importar datos desde una hoja de cálculo. Primero obtenemos los datos de la hoja de cálculo utilizando el métodotoArray
y luego cortamos las primeras 4 filas que contienen celdas vacías. Luego pasamos los encabezados y las filas a una vista, que devolvemos desde el métodoview
de la clase.Luego utilizamos el método
model
para asignar las columnas de cada fila a los campos correspondientes del modeloUser
. Esto debería ignorar las celdas vacías e importar los datos correctamente.Ten en cuenta que este ejemplo asume que los encabezados están presentes en la cuarta fila y que no hay otras celdas vacías en los datos. Es posible que debas ajustar el código si tu hoja de cálculo tiene una estructura diferente.