Descargar archivos csv

¿Qué es un archivo csv?

Un csv es un archivo de valores separados por comas. Se pueden usar con excel o con cualquier otro programa de hoja de cálculo. Se diferencian de otros tipos de archivo de hoja de cálculo en que no puede guardar ningún formato ni puede guardar las fórmulas.

Los archivos con extension csv tienen un comportamiento similar al que tienen los archivos png, jpg, pdf, el navegador los toma como archivos pequeños que puede mostrar en otra pestaña y no los descarga.

¿Cuál es el problema?

Los clientes cuando tratan de descargar un archivo en formato csv el navegador lo abre en una ventana nueva y no lo descarga.

Bien, un issue sencillo, nada complicado, ¿qué tan difícil es descargar un archivo csv?, y si, no es difícil descargar un csv, sin embargo, tuve que hacer una pequeña investigación antes de resolver este issue, y la quiero compartir con ustedes.

En vista de que el navegador no va a descargar el archivo, pero si muestra su contenido, lo primero hay que hacer es descargar el contenido del archivo que en nuestro caso es esta en AWS. Creamos una función que descargue el contenido usando fetch, a continuación con ayuda de la librería Downloadjs descargamos el archivo.

Downloadjs es una librería que permite descargar archivos en diferentes tipos de formatos. Recibe tres parámetros :

  • El archivo que se va a descargar.
  • El nombre del archivo y su extensión(archivo.csv)
  • El MIME type (Es una forma estandarizada de indicar la naturaleza y el formato de un documento) MDN

Este es el método rápido, sencillo y mágico para descargar un archivo csv.

Y así de fácil tienes tu archivo csv.

También puedes descargar un cvs de otra forma un poco mas compleja pero igual de efectiva.

De igual manera que antes descargamos el contenido del archivo con fetch,con new blobconcatenamos la información, le decimos el tipo de archivo que será, creamos una nueva url de la cual vamos a descargar el archivo csv. Creamos una etiqueta (<a></a>)y descargamos el archivo. Posteriormente eliminamos la url creada ya que el navegador no debe guardar la referencia al archivo.

Aqui puedes probar que funciona.

Para finalizar

Si usas el primer método te vas ahorrar código y también vas a poder descargar archivos jpg, png, pdf, txt, gif. De igual manera que con los .csv los puedes descargar muy fácil y rápido. Ten en cuanta que estas agregando una librería mas a tu código con lo que ello implica, aunque al final es una librería pequeña que hace algo puntual.

Si usas el segundo método es un poco mas de código, pero te estas evitando una librería mas en el código. Ahora si sabes que lo único que necesitas es descargar archivos .csv y no necesitas los otros formatos que mencioné anteriormente, pues para que agregar una librería con este método es suficiente.

¿Cuál es la mejor?

Depende de como estén trabajando, del equipo y de que librerías y/o frameworks estén utilizando.

Correcciones, mejoras, comentarios, siempre bien recibidos.

Saludos.

Abandoné mi zona de confort. ¿Buena decisión?

Después de 10 años de no cambiar de trabajo, no presentarme a ninguna entrevista o buscar una oportunidad laboral, estar en un trabajo donde me sentía cómodo y estable, pensar muchas veces en cambiar, pero no saber cómo hacer ese cambio. Luego de superar algunos obstáculos y de descubrir mi gusto por la programación: decido aprender a programar.

Pero para aprender a programar debía asistir a la universidad (pensé en ese momento). Pero dinero y principalmente tiempo era lo que no tenía, así que empecé a hacerlo por internet como se hacen muchas cosas actualmente.

Así fue como llegue a Platzi, egghead, udemy, tutoriales, youtube, documentación. etc. Pase aproximadamente 3 años aprendiendo qué es html, js, css, servidores, dominios, back, front. Hasta que front me gustó y decido enfocarme en ese campo.

En el camino un buen amigo me platica de una oportunidad para trabajar como junior en la empresa que él trabaja (Resuelve tu deuda). ¿Es una buena oportunidad? ¿Es el momento ideal para cambiar de trabajo? (pensé es ese momento) luego de pensarlo y con el miedo que se puede sentir después de tanto tiempo de no presentar una entrevista, decido iniciar el proceso.

Primera entrevista, mucho miedo ¿Qué me van a preguntar? ¿Si no contesto bien? Y mil cosas más. Entrevista agradable, con preguntas de parte y parte, ahora pienso que algo normal en la primera entrevista. Me envían la prueba, tardo mucho tiempo en enviarla, solo lo hacía en las noches luego de salir de mi trabajo, finalmente la envío, la revisan, deciden continuar con el proceso, y finalmente me dan la oportunidad.

¿Buena decisión?

Luego de 6 meses aproximadamente debo decir que fue la mejor decisión que he podido tomar, ha sido un a experiencia enriquecedora, de mucho aprendizaje, superar miedos, conocer personas geniales que disfrutan de lo que hacen, enfrentar y superar problemas, de poder asistir a meetups.También darme cuenta que aun me falta mucho por aprender, que hay personas dispuestas a enseñarte, dispuestas crecer y en ese crecimiento quieren que tú crezcas con ellos, de líderes que están siempre dispuestos a enseñarte, a guiarte.

Finalmente para aquellos como yo, que están llenos de temores, que quizá no quieren abandonar su zona de confort, decirles que lo intenten, que se arriesguen, que lo peor que puede pasar es que les digan que no y que muy seguramente alguno les dirá que sí y en unos meses estarán escribiendo esto mismo. También muchas veces pensamos que estamos bien y puede que sea cierto, pero podemos estar mucho mejor si lo intentamos y no dejamos de intentarlo.

Gracias a Yeison Daza, Jordi Adame, Jaime Rodas, Ángel Buzany, y todos los que no mencioné que ya saben quienes son. Y por supuesto a Resuelve tu deuda por darme la oportunidad.

Saludos…

Facebook
Twitter
YouTube