Exportação de cabeçalhos de coluna do Excel para csv

Exportação de cabeçalhos de coluna do Excel para csv

Apenas querendo saber como posso exportar arquivos do Excel para csv enquanto mantenho os cabeçalhos de várias colunas?

Sei que o csv não suporta isso, no entanto, espero poder duplicar o nome do cabeçalho para cada coluna que ele passa.

Para ilustrar, isso é o que estou recebendo atualmente

uma,,,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

Isto é o que eu gostaria

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

Procurei encontrar uma resposta, no entanto, a menos que esteja pesquisando o termo errado... Não consigo encontrar muita coisa sobre isso.

A solução não precisa ser Microsoft.... também pode ser uma solução Linux.

Obrigado, Brian

Responder1

Se você exportou sua planilha para file1.csv, como mostrado, faça

#!/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=,define awkos separadores de arquivos de entrada e saída como ,.
  • NR==1significa “faça o seguinte apenas no primeiro registro (linha/linha)”.
  • O forloop analisa cada campo (célula) na primeira linha e, se estiver em branco, iguala-o ao valor anterior.
  • { print }imprime todos os registros de file1.csvto file2.csv, com o primeiro sendo modificado (conforme descrito acima) e todos os outros sendo passados ​​de entrada para saída (para que as células vazias abaixo da primeira linha não sejam adulteradas).

informação relacionada