#18 Curso de LARAVEL profesional - IMPORTAR / EXPORTAR CSV / EXCEL

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ก.ย. 2024

ความคิดเห็น • 71

  • @josesalcedo7275
    @josesalcedo7275 ปีที่แล้ว +7

    Para los que les dio error en el import del CSV, para mi la solucion fue colocarle algo al ProductImport : class ProductImport implements ToModel, WithHeadingRow importenlo y ya con eso debe de solucionarse que hace esto, pues que de la primera posicion del excel no lo tome como una posicion para realizar el insert si no que esa lo convierta a un array asociativo y asi si pueda tomar los nombres de los campos para poder extraer los datos, para mi esa fue la solucion si alguien tiene una mejor chevere, me la comparte porfa jeje para aprender

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว +1

      Muchas gracias, Jose! Fijo el comentario para que los compañeros que sufren el mismo issue puedan verlo. 👍

    • @pedro-j
      @pedro-j 11 หลายเดือนก่อน

      Supongo que lo que sea necesario requerir que la clase ProductImport, también, implemente de "WithHeadingRow" es que se produzca un error que indica algo como " Undefined array key "name" ", siendo "name" el nombre de una de las cabeceras establecidas en la primera línea del archivo CSV generado, en el caso del video, dentro de Microsoft Excel. Activando, pues, el "WithHeadingRow", se soluciona. Gracias @josesalcedo por el consejo.

  • @angelocampo262
    @angelocampo262 ปีที่แล้ว +3

    Llevo 3 semanas pidiendo ayuda al senior de mi trabajo para poder hacer esto y ahora usted me va a explicar !!! Mil gracias!!

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว

      A por ello! 👍

  • @javierdesmaret9130
    @javierdesmaret9130 ปีที่แล้ว +2

    Hola desde Argentina!! estaba esperando un vídeo nuevo!!! excelente todas sus explicaciones!!! muchas gracias por toda esta info!!! seguimos aprendiendo!!

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว +1

      Muchas gracias Javier!

  • @anmasa
    @anmasa ปีที่แล้ว +1

    Excelente como siempre, saludos.

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว

      Muchas gracias Antonio!

  • @angelmrles4409
    @angelmrles4409 9 หลายเดือนก่อน +1

    Hola por favor podrías hacer una video con la explicación, en el caso cuando se trabaja con un excel que en su interior contiene varios hojas para procesarlas

  • @pedro-j
    @pedro-j 11 หลายเดือนก่อน

    Tal y como comentabas en el minuto 00:29:00 de este video, al final de la clase, no terminaste haciendo lo de poner un modelo de archivo CSV para que el usuario vea qué formato debe tener el requerido por el proceso en cuestión.
    Otra opción que pudieras haber hecho es poner un enlace a un modelo en la descripción del video. Saludos.

  • @gianfrancoecthedel133
    @gianfrancoecthedel133 3 หลายเดือนก่อน

    Hola , quisiera saber si es posible importar datos fiancieros diferentes para cada empresa? el problemas es que el excel siempre varia por empresa no todo tiene el mismo formato

  • @piki_marquitos
    @piki_marquitos 14 วันที่ผ่านมา

    no figura ningun error pero no me funciona la parte de import

  • @luismanuelcarvallorodrigue8895
    @luismanuelcarvallorodrigue8895 3 หลายเดือนก่อน

    Buenas si alguien le sale el error donde no se importan bien las archivos csv o los excel, intenten que en la funcion de imporProduct, crear una variable bueleana y junto a un condicional evitar que se cree un objeto con la primera fila de la tabla (recordemos que la primera fila son nombres de campos, y da conflictos con campos numericos). aun no es una buena solucion

  • @jairpineiro7295
    @jairpineiro7295 5 หลายเดือนก่อน

    Hola, alguien sabe cómo puedo corregir este error?
    Interface "Maatwebsite\Excel\Concerns\ToModel" not found

  • @mciContreras
    @mciContreras 7 หลายเดือนก่อน

    Pedazo de curso!!! Aunque con esta clase tengo un problema...
    Haciendo la instalación del paquete con composer, me realiza la instalación de la versión 1.1 y me saca el error de: "el comando make:import" no existe.
    He visto que ha dado ese error a algunos que han seguido el curso, pero en mi caso me indica que mi PHP es una versión que no tolera el paquete y no entiendo por qué porque si hago la instalación siguiendo su web: composer require maatwebsite/excel:^3.1
    Me indica que mi versión no es aceptada cuando hago la instalación
    - Root composer.json requires maatwebsite/excel 3.1 -> satisfiable by maatwebsite/excel[3.1.0].
    - maatwebsite/excel 3.1.0 requires php ^7.0 -> your php version (8.2.12) does not satisfy that requirement.
    Sobreentiendo que mi versión php (tanto en consola con php -v) como la que me arroja el mismo error, supera con creces lo que necesita el paquete... ¿alguna ayuda?

    • @ayudantec
      @ayudantec 4 หลายเดือนก่อน

      en tu php.ini habilita la extension gd, quítale el ; luego vuelve a instalar con composer require maatwebsite/excel

    • @luismanuelcarvallorodrigue8895
      @luismanuelcarvallorodrigue8895 3 หลายเดือนก่อน +1

      @@ayudantec Bro muchas gracias, pase media hora buscando soluciones

  • @pedro-j
    @pedro-j 11 หลายเดือนก่อน

    Aparte del error comentado sobre el "WithHeadingRow" para que la primera línea no sea considerada como uno de los registros a importar, a mí, lo que me falla es la regla de validación para que la petición solo admita archivos CSV ('required|mimes:csv|max:2048'). Solo si elimino el "mimes:csv" de la regla puedo llegar a subir el archivo y obtener el resultado deseado de importar los datos a la tabla del modelo. He creado el archivo igual que en el video; mediante Excel y guardándolo con la extensión CSV (existen dos opciones de CSV, una de ellas con UTF-8; he probado las dos y ninguna pasa la validación de tipo de archivo). Sea cuál sea la opción de guardado CSV elegida, siempre obtengo el mismo mensaje de error de validación: "El campo document_csv debe ser un archivo con formato: csv.". ¿Por qué? Saludos.

    • @arcangelrs
      @arcangelrs 11 หลายเดือนก่อน

      Hola, al parecer en las útlimas versiones de Laravel debes usar el Rule Class para este tipo de validaciones, en mi caso usé:
      $request->validate([
      'doc_csv' => 'required',
      File::types(['csv']),
      ]);
      Recuerda import la clase: use Illuminate\Validation\Rules\File;
      Debería funcionarte

    • @pedro-j
      @pedro-j 11 หลายเดือนก่อน

      @@arcangelrs De primeras, gracias por prestar tu ayuda.
      Con la debida importación de la clase File, tal y como indicabas, la regla de validación a aplicar sobre el archivo subido a importar me queda así dentro del correspondiente Custom Request o FormRequest:
      'csv_file' => ['required', 'max:2048', File::types(['csv'])],
      Y he probado la regla subiendo un archivo de extensión CSV que ha sido guardado, como dije en mi anterior mensaje, como "CSV UTF-8 (delimitado por comas) (*.csv)" y, también, simplemente, como "CSV (delimitado por comas) (*.csv)". En ninguno de los dos casos, me termina de funcionar. Me sigue dando el mismo mensaje de error de validación, no reconociendo que el archivo subido sea del formato adecuado: "El campo Archivo CSV debe ser un archivo con formato: csv.".
      ¿Alguna otra idea?

  • @josemanuelsanchezgil3063
    @josemanuelsanchezgil3063 ปีที่แล้ว

    Excelente así se imparte un curso , fantastico. Me podrias decir que tema utilizas para vsc, es que se ve muy bueno

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว +1

      Muchas gracias! El tema actual que uso se llama obsidian 👍

  • @davidr6970
    @davidr6970 11 หลายเดือนก่อน +1

    Ayudaaaa, no se si alguien que haya pasado, en este mes que transcurrió, de la publicación de este video, pero resulta que aunque agregues este comando "composer require maatwebsite/excel -W " y se instale el paquete y aparezca en el composer.json, cuando quieres ejecutar el comando "php artisan make:import ProductImport --model=Product", no reconoce el comando make:import. Estuve investiugando y encontre esto. "La versión de maatwebsite/excel que tienes instalada no es compatible con Laravel 10.x, lo que genera un conflicto en la llamada al método share." trate de registrarlos de manera manual en config/app.php y obtuve ese error, si alguien mas tiene ese problema o ya lo soluciono, le agradezco, si me puede ayudar a mi.

    • @GOGODEV
      @GOGODEV  11 หลายเดือนก่อน +1

      Hola David! Compárteme el código de tu compose.json y le echo un ojo.

    • @davidr6970
      @davidr6970 11 หลายเดือนก่อน +1

      @@GOGODEV Muchas gracias por esta atento a nuestras dudas, ya solucione el inconveniente, comparto la solución, cuando instale el parque de maatwebsite/excel por alguna razón se instalo la versión 1.1. y cuando volvía a ejecutar el comando seguía instalando esta misma versión, lo que hice fue cambiar de forma manual el 1.1 a 3.1 y actualizar composer mediante composer update y funciono correctamente.

    • @GOGODEV
      @GOGODEV  11 หลายเดือนก่อน +1

      @@davidr6970 Genial! Me alegra que quedara resuelto

    • @franciscoaziz
      @franciscoaziz 8 หลายเดือนก่อน

      Gracias. Tengo el mismo problema, estoy intentando solucionarlo. Ya sé, voy un tanto atrasado. Saludos, @@davidr6970

    • @12MAMB
      @12MAMB 8 หลายเดือนก่อน

      Estoy teniendo el mismo problema que tú. Si alguien puede echar un cable se agradece:
      Package phpoffice/phpexcel is abandoned, you should avoid using it. Use phpoffice/phpspreadsheet instead.
      He intentado utilizar el paquete que me sugiere la consola y sigo igual.

  • @StevenOrtiz-g5r
    @StevenOrtiz-g5r 8 หลายเดือนก่อน

    compañero consulta no conoces algún recurso o si tienes algún tutorial de como poder leer códigos de barra con laravel es para un sistema pos que estoy creando pero solo encuentro para generar códigos de barra lo cual lo que necesito es poder leerlos y agregar el producto a la tabla venta según el código leído pero no encuentro recursos que me ayuden! gracias ante mano

  • @davidcardenas7737
    @davidcardenas7737 10 หลายเดือนก่อน

    esta regla
    $request->validate([
    'document' => 'required|max:2048|mimes:csv'
    ]);
    mimes no me funciona , alguien tuvo ese problema ??? , tengo bien guardado mi documento

  • @mamurillo84
    @mamurillo84 ปีที่แล้ว

    Si tengo que crear un middleware para controlar destino de una petición, ¿como defino si la llamada que activa la acción de este middleware viene de frontend o de backend? ... Gracias.

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว

      Hola!
      Puedes determinar si la llamada proviene del frontend o del backend utilizando información proporcionada en la solicitud HTTP o mediante una convención en la URL o encabezados personalizados.
      Algunas estrategias que podrías usar:
      URL o Prefijo de Ruta: Puedes establecer una convención en la estructura de tus rutas para diferenciar las solicitudes del frontend y del backend. Por ejemplo, podrías tener un prefijo en las rutas del backend como "/admin" o "/api" y utilizarlo para distinguir las solicitudes. Luego, en tu middleware, puedes verificar la URL de la solicitud para ver si contiene ese prefijo.
      if (Str::startsWith($request->url(), ['/admin', '/api'])) {
      // Es una solicitud del backend
      } else {
      // Es una solicitud del frontend
      }
      Otra aproximación distinta sería por ejemplo la de usar encabezados personalizados. Puedes agregar encabezados personalizados a las solicitudes del frontend y verificar la presencia de esos encabezados en tu middleware. Por ejemplo, podrías agregar un encabezado personalizado como "X-App-Origin" con el valor "frontend" en las solicitudes del frontend y luego verificar ese encabezado en tu middleware.
      if ($request->header('X-App-Origin') === 'frontend') {
      // Es una solicitud del frontend
      } else {
      // Es una solicitud del backend
      }
      Por último, aunque este sería un formato algo más particular, podrías usar una estrategia de dominio. Si el frontend y el backend se ejecutan en dominios diferentes, puedes verificar el dominio de la solicitud para determinar su origen.
      if ($request->getHost() === 'frontend.example.com') {
      // Es una solicitud del frontend
      } else {
      // Es una solicitud del backend
      }
      Espero que sea de ayuda. Un abrazo!

  • @juanjosecruzgonzalez9194
    @juanjosecruzgonzalez9194 ปีที่แล้ว

    ¡Gracias!

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว

      Muchas gracias por tu apoyo, Juanjo! ⭐⭐⭐⭐⭐

  • @CesarDevelops
    @CesarDevelops 6 หลายเดือนก่อน

    hola buenos dias, depronto sabe por que no me reconoce el "make:import"

    • @benatn
      @benatn 6 หลายเดือนก่อน

      Hola estoy en lo mismo

    • @ayudantec
      @ayudantec 4 หลายเดือนก่อน

      @@benatn habilita la extension gd del archivo php.ini, y luego intenta composer require maatwebsite/excel

  • @yoanestradablanco1608
    @yoanestradablanco1608 7 หลายเดือนก่อน

    hermnos tengo un problema estoy usando laravel 10 y no me instal la version 31 sino la 1.1

    • @GOGODEV
      @GOGODEV  6 หลายเดือนก่อน

      Hola Yoan! La versión 1.1 te genera alguna diferencia importante? Para checarla

    • @ayudantec
      @ayudantec 4 หลายเดือนก่อน +2

      descomenta la extension gd de tu php.ini, y vuelve a instalar con composer

    • @yoanestradablanco1608
      @yoanestradablanco1608 4 หลายเดือนก่อน

      @@ayudantec Buenisimo mano yo tuve que inventar otras cosas mas locas

  • @juanjosecruzgonzalez9194
    @juanjosecruzgonzalez9194 ปีที่แล้ว

    Hola Profesor, necesito su apoyo, al tratar de crear Import con: php artisan make:import ProductImport --model=Product, me provoca error y dice Command "make:import" is not defined. Did you mean one of these?

    • @juanjosecruzgonzalez9194
      @juanjosecruzgonzalez9194 ปีที่แล้ว

      He segido las instruciones al pie de la letra y todo ha salido muy bien, hasta que me ocurrio este error.

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว +1

      Este error debe estar dando porque no se ha importado correctamente el paquete (la instrucción composer require) Verifica porfa que esta inclusión la has hecho en el proyecto en curso, ya que este paquete es el que incorpora dicho comando a tu proyecto 👍

  • @sandokanArg
    @sandokanArg ปีที่แล้ว

    bueno, la importacion tuve problemas que no importa, ahora lo que veo que mi csv me da ; creo que ahi esta el problema, pero lo cambio en el excel.php de null a ";" pero me sigue sin importar, ya probe con coma sola y tampoco. Cuando hago la exportacion me lo exporta con coma, pero mi excel no lo habre ben, sino en una sola columna, como que no detecta la configuracion con la que viene el archivo. Creo que ya es algo de mi configuracion de region, asi que primero veo eso y despues vuelvo a probar

    • @sandokanArg
      @sandokanArg ปีที่แล้ว

      ya chequee eso, pero no pude solucionarlo, asi que si alguien tiene el dato correcto, por favor si me ilumina se lo agradecere mucho, la exportacion si al ponerle en el config ";" me exporta bien, pero la importacion no, que raro.

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว

      Pásame un repo y le echo un vistazo :) Incluye el csv que estás tratando de importar.

    • @josemanuelsanchezgil3063
      @josemanuelsanchezgil3063 ปีที่แล้ว

      Me pasa lo mismo no me lo importa de ninguna manera ni en office ni en libreoffice. Y me lo exporta correctamente solo en libreoffice

    • @sandokanArg
      @sandokanArg ปีที่แล้ว

      @@josemanuelsanchezgil3063 mira, a mi me exporta bien, ya que modifique en el config el tema de la coma por punto y coma, pero en la importacion no me toma ese cambio.

    • @josemanuelsanchezgil3063
      @josemanuelsanchezgil3063 ปีที่แล้ว

      Pues a mi i cambiando por ; me lo exporta bien el office, el libreoffice si me lo hace bien. Como tu dices sera alguna configuracion regional o algo parecido.

  • @sandokanArg
    @sandokanArg ปีที่แล้ว

    En discord puse la importación porque tengo un problem. No me importa y no se q esta mal, ya revisé todo un montón de veces. Puse también lo q sale en la herramienta de navegador q muestra los datos q envía, a ver si encontré el error

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว

      Si puedes escríbemelo en la sección de preguntas del campus de ademass campus-ademass.com para que pueda revisarlo y no se me pierda en el hilo. Gracias!

    • @sandokanArg
      @sandokanArg ปีที่แล้ว

      @@GOGODEV ups lo puse en formación

    • @GOGODEV
      @GOGODEV  ปีที่แล้ว

      @@sandokanArg No prob. Trato de mirarlo también ahí. Pero si me lo dejas en el campus mejor que mejor para no perder la info en hilos 👍

    • @sandokanArg
      @sandokanArg ปีที่แล้ว

      @@GOGODEV ahi lo copio en el campus