Consulta para importación de archivos csv

133 views
Skip to first unread message

Diego Surra

unread,
Dec 4, 2014, 11:24:37 AM12/4/14
to symfo...@googlegroups.com
Buenas,

Quisiera saber si alguien uso algún bundle para importar un archivo csv y meterlo en la base de datos en una tabla.

Lo que necesito hacer es lo siguiente.

Tengo unas tablas con algunos campos, y necesito hacer una importación masiva de un csv que tiene varios campos (algunos más que los de la tabla y otros campos que irian a diferentes tablas), y necesitaría armar una tarea que haga esa importación.

Existe o alguien uso algún Bundle que lo resuelva o alguien tiene algo hecho que pueda compartir?

Desde ya muchas gracias.

Saludos,
Diego

Manuel Aguirre

unread,
Dec 4, 2014, 11:42:41 AM12/4/14
to symfo...@googlegroups.com
Buenas,

Hace un tiempo creé un bundle para la lectura de archivos de datos, actualmente funciona con xls y csv:

https://github.com/manuelj555/UploadDataBundle2

Puedes hecharle un vistazo a ver si te sirve.







--
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a symfony-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--

Manuel Aguirre.


manuel_j555 | Desarrollador de Software | Optime Consulting | twitter | github | Sitio web


A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales.

Absalón Valdés Ormeño

unread,
Dec 4, 2014, 11:43:48 AM12/4/14
to symfo...@googlegroups.com
¿Un bundle para leer archivos CSV? Eso es como querer un bundle que sume dos números. De hecho es tan sencillo que con un poco de RTFM basta. La tarea que quieres es muy simple con lo que tiene php. 

// Leer archivo CSV
$csv = array_map('str_getcsv', file('datos.csv'));

// enviar cada item a la DB
foreach ($csv as $linea => $item) {
   // Aqui ya depende de tu aplicación. por ejemplo
   $em->persist(
MiClase::fromArray($item)); // meter en tabla 1
   $em->persist(MiOtraClase::fromArray($item)); // meter en tabla 2
}
$em->flush();

El metodo "fromArray" solo construye el objeto desde un array en vez de armarlo con setters. Por ejemplo:

public static function fromArray($data)
{
    $object = new MiClase();
    $object->setCampoA($data['campoA']);
    $object->setCampoB($data['campoB']);
    return $object;
}


--
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a symfony-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Absalon Valdés Ormeño.
http://es.gravatar.com/absalonvaldes

Diego Surra

unread,
Dec 5, 2014, 1:01:11 PM12/5/14
to symfo...@googlegroups.com
Genial la info, voy a realizar pruebas y ver como va.

Gracias
Reply all
Reply to author
Forward
0 new messages