manualmente estas creando un archivo de texto con anchos de columna fijo no un csv, mientras que la macro te crea un csv (
Coma
Sparated
Values).
Php tiene que hacer cosas muy distintas en un caso y en el otro...
En el foro de PHP te ayudaran mejor que aqui, pero como te dice gnzsoloyo, todo seria mas facil si usas
LOAD DATA y no el INSERT.
Php tiene la funcion explode(",",texto) que te convertiria una linea del fichero csv en un array separando los campos...
Otra opcion que tienes es modificar la macro de excel para que genere el fichero igual que cuando lo haces a mano, pero ten claro que a mano no estas creando un archivo .csv sino un archivo de texto con ancho fijo de columnas.... aún que le pongas la extension csv no es un
Coma
Sparated
Values.