Unir varios CSV cuyo num de columnas varia de un csv a otro pero con el mismo formato de datos.

Tengo una gran cantidad de archivos csv con muchas columnas, los cuales quiero unir para pasarlos a una base de datos mysql. El problema es el siguiente:

Los archivos csv separados por "," tienen columnas con nombres idénticos en todos los casos (son csv de big data deportivo), pero algunos muestran unas columnas, es decir contienen esos datos y otros csv no.

Por ejemplo:

Csv1: col1, col2, col3, col4, col5, col6, col7, col8, col9, col10.

Csv2: col1, col2, col3, col4, col5, col6, col7, col8, COL11, COL12.

Csv3: col1, col2, col3, col4, col5, col6, col7, col8, COL11, COL12, COL 13, COL14.

Csv4: col1, col2, col3, col4, col7, col8, COL11, COL12, COL 13, COL14.

Y asi sucesivamente.

Muchos archivos tienen igualdad unos con otros, por ejemplo puedo tener 20 de varias ligas de fútbol, que contienen exactamente las mismas columnas debido a que son de los 2 últimos años, y con hacer un copy *. Csv todos. Csv desde cmd me vale.

El problema viene cuando meto alguno que varia en su contenido (que son la gran mayoría, ya que los archivos de hace 10 años contienen menos información que los del año pasado, o información distinta), se me descuadra todo el csv y sus columnas, así que ese sistema de "copy" me haría ir revisando uno por uno cada archivo y comprobando sus columnas para que fueran todos iguales.

Además, cada archivo tiene un encabezado que habría que eliminar.

Imagino que con VBA se puede hacer, pero no lo controlo y mucho menos lo domino, a ver si alguien podría ayudarme...

Para mi lo "ideal" seria que se pudiera crear un csv o un archivo de excel (luego lo exportaría sin problema) que contuviese TODAS las columnas disponibles en los archivos, y aquellos que no tuvieran contenido o valores en esa columna se pusiera por defecto un "0" o un "null".

Añade tu respuesta

Haz clic para o