Cabeçalhos de coluna do Excel exportam para csv

1

Apenas vagando como eu posso exportar arquivos do excel para csv enquanto retendo os cabeçalhos de várias colunas?

Eu percebo que o csv não suporta isso, no entanto, estou esperando que eu possa ter o nome do cabeçalho duplicado para cada coluna que ele passar.

Para ilustrar, é isso que estou recebendo atualmente

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

Isso é o que eu gostaria de ter

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

Eu procurei encontrar uma resposta, no entanto, a menos que eu esteja pesquisando o termo errado ... parece que não consigo encontrar muita coisa sobre isso.

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

Obrigado Brian

    
por user1641165 07.07.2014 / 08:26

1 resposta

0

Se você exportou sua planilha para file1.csv , conforme 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=, conjuntos awk de separadores de arquivos de entrada e saída para , .
  • NR==1 significa “faça o seguinte no primeiro registro (linha / linha) apenas”.
  • O loop for examina cada campo (célula) na primeira linha, e, se estiver em branco, será igual ao valor anterior.
  • { print } imprime todos os registros de file1.csv a file2.csv , com o primeiro sendo modificado (como descrito acima) e todos os outros sendo repassados da entrada para a saída (células vazias abaixo da primeira linha não serão adulteradas).
por 07.07.2014 / 19:42