![Los encabezados de las columnas de Excel se exportan a csv](https://rvso.com/image/1414672/Los%20encabezados%20de%20las%20columnas%20de%20Excel%20se%20exportan%20a%20csv.png)
¿Me pregunto cómo puedo exportar archivos de Excel a CSV manteniendo los encabezados de varias columnas?
Me doy cuenta de que csv no admite esto; sin embargo, espero poder duplicar el nombre del encabezado para cada columna que pasa.
Para ilustrar, esto es lo que estoy recibiendo actualmente.
a,,,b,,,c,,
1,2,3,4,5,6,7,8,9
d1,d1,d1,d1,d1,d1,d1,d1,d1
d2,d2,d2 ,d2,d2,d2,d2,d2,d2
esto es lo que me gustaría
a,a,a,b,b,b,c,c,c
1,2,3,4,5,6,7,8,9
d1,d1,d1,d1,d1,d1,d1,d1, d1
d2,d2,d2,d2,d2,d2,d2,d2,d2
He buscado para encontrar una respuesta, sin embargo, a menos que esté buscando el término incorrecto... Parece que no puedo encontrar mucho al respecto.
La solución no tiene que ser Microsoft... también puede ser una solución Linux.
gracias, brian
Respuesta1
Si ha exportado su hoja de cálculo a file1.csv
, como se muestra, haga
#!/bin/sh
awk -F, -v OFS=, '
NR==1 {
for (i = 1; i <= NF; i++) {
if ($i == "") $i = prev
prev=$i
}
}
{ print }' < file1.csv > file2.csv
-F, -v OFS=,
estableceawk
los separadores de archivos de entrada y salida en,
.NR==1
significa "hacer lo siguiente sólo en el primer registro (línea/fila)".- El
for
bucle examina cada campo (celda) de la primera fila y, si está en blanco, lo iguala al valor anterior. { print }
imprime todos los registros desdefile1.csv
hastafile2.csv
, modificando el primero (como se describe arriba) y pasando todos los demás de entrada a salida (para que las celdas vacías debajo de la primera fila no sean manipuladas).