Como forçar o Excel a abrir arquivos CSV com dados organizados em colunas

32

Gero um arquivo CSV com uma extensão .csv na qual todos os dados de uma linha são separados por vírgula:

1,2,3,4
1,2,3,4

O arquivo é enviado por e-mail e quero que, quando um cliente o abra, ele veja dados organizados em colunas.

Isso é possível?

PS: Eu posso mudar livremente o delímetro.

Timofey
fonte
1
No que me diz respeito, você não pode fazer nada, exceto importar os dados para o Excel, pois o Excel não pode fazer suposições sobre a estrutura dos dados em si (por exemplo, o separador usado, o formato das casas decimais ou o formato geral De dados).
slhck
@slhck, por favor, olhe a resposta
Timofey
Ah, eu não sabia que o Excel era capaz de fazer isso. Agradável.
slhck
1
Basta clicar duas vezes no arquivo CSV, o Excel será aberto e o arquivo será exibido corretamente. Estou correcto?
wilson
@wilson: Excel tem de ser associado a arquivos .csv abertas, em seguida, clicando duas vezes um arquivo .csv Excel será iniciado
Timofey

Respostas:

10

Use a guia em vez de vírgula. E se isso não funcionar, forneça ao arquivo delimitado por tabulação uma extensão xls.

Joel Coehoorn
fonte
thanks for a solução, eu deixei a .csv como extensão de arquivo
Timofey
não funciona para o excel 14.7.1 no mac (2017)
masukomi
3
o "PS: posso alterar livremente o delimitador". torna esta resposta menos válida
Paul Fijma 11/11/19
Isso não responde como carregar um arquivo CSV, pois C significa vírgula.
JBernardo
@JBernardo Foi o que aconteceu uma vez, mas hoje você encontrará arquivos com extensões csv em estado selvagem com todos os tipos de delimitadores: guia, barra vertical, vírgula, traço, @, \ 0, etc. Certo ou errado, eles estão lá fora , e a parte da pergunta que diz "Eu posso alterar os delimitadores" torna essa resposta válida.
Joel Coehoorn
43

se é apenas para obter a csv legibilidade em todos os sistemas, há um truque não documentado: na primeira linha, escreva SEP=;. Essa linha informa ao EXCEL qual caractere usar como separador (na verdade, você pode usar qualquer caractere (único) ( ;,|@#'...))

NOTA: esta linha é apenas parte do csvpróprio arquivo. Vai não se tornar parte da spreadsheed no Excel. isto significa, não será mostrado e não será gravado, independentemente do formato que você definir para gravar ou exportar.

Stephan
fonte
Este foi um salva-vidas! Trabalhou muito bem aqui!
Etienne Dupuis
melhor solução IMHO, como deve funcionar com todos os idiomas
mBardos
39

O comportamento do Excel ao abrir arquivos CSV depende muito das configurações locais e do usado list separatorem Region and language » Formats » Advanced. Por padrão, o Excel assume que todos os CSV foram salvos com esse separador. O que é verdade desde que o CSV não venha de outro país!

Se seus clientes estiverem em outros países, eles poderão ver outros resultados, então você pensa.

Por exemplo, aqui você vê que um Excel alemão usará ponto e vírgula em vez de vírgula como nos EUA insira a descrição da imagem aqui

Para confundir ainda mais, essa configuração interfere no símbolo decimal, que pode ser configurado separadamente nas Excel Options » Advanced » Use system separatorsconfigurações regionais ou através das configurações regionais, como mostrado acima. O Excel não pode usar o mesmo símbolo da guia decimal e do separador de listas. Ele usará automaticamente vírgula ou ponto-e-vírgula como um separador de backup. Consulte Mais informação

Vou dar o seu exemplo para criar 3 arquivos. Cada um com um separador diferente e abra-o com o Excel.

    COMMA               SEMICOLON                     TAB 

insira a descrição da imagem aquiinsira a descrição da imagem aquiinsira a descrição da imagem aqui

Não é o mesmo que o seu Excel faz? Eu pensei assim.

Então, vamos alterar manualmente a extensão dos mesmos arquivos CSV para XLS e ver o que acontece agora. Primeiro, o Excel emitirá um aviso de que a extensão do arquivo não corresponde ao conteúdo e o Excel tenta adivinhar o que está dentro.

    COMMA        SEMICOLON                   TAB 

insira a descrição da imagem aquiinsira a descrição da imagem aquiinsira a descrição da imagem aqui

Conclusão: TAB + renomear + ignorar aviso = Ganhar em todos os sistemas?
Talvez, mas eu não teria tanta certeza para clientes fora do seu país.

O melhor método é instruir seus clientes a abrir primeiro um Excel em branco e, em seguida, ir Data » Get data from texte selecionar vírgula manualmente como separador

nixda
fonte
2
Esta resposta é ótima, mas acho isso patético da Microsoft. Você abre um csv no Numbers e ele é aberto corretamente. Você o abre nas planilhas do Google e ele abre corretamente. Então você abre no Excel, que é o único pelo qual você paga e ... Nada. E aqueles de nós que nunca definiram um separador de lista? Agora preciso perder tempo tentando fazê-lo funcionar porque "vírgulas" não significam nada neste "csv". Muito frustrante.
Toque em
> Esta solução funciona para mim (excel 2013). Eu ajusto meu formato regional: defino um ponto (.) Como "separador decimal", uma vírgula (,) como "separador de milhar" e uma vírgula (,) como um "separador de lista" - cesargastonec 13 / jul / 15 às 16: 05
Alex78191 30/11
Ou você pode alterar o separador decimal nas opções do Excel superuser.com/a/1470373
Alex78191 30/11
1

Você pode substituir ".csv" por ".txt", iniciar o Excel e abrir esse arquivo .txt. Em seguida, o Excel mostrará um assistente onde você pode especificar o uso de "," como separador. Quando você salvar esse arquivo como .csv novamente, na próxima vez que o Excel o abrir da maneira que você precisar.

daviii
fonte
0

Outra solução que usei nessa situação foi a saída de um arquivo HTML básico, em vez de CSV. O Excel pode abrir isso sem erros. Também pode ler pelo menos parte da formatação no arquivo.

texto bruto
fonte
0

Esta é a resposta mais idiota de todos os tempos, mas funcionou. Eu uso arquivos CSV diariamente. Eu os crio o tempo todo e visualizo com o excel. Hoje, depois de 12 anos de nunca ver esse problema, aconteceu comigo. Não abriria um arquivo csv e formataria as colunas. Mesmo alguns arquivos CSV que criei na noite passada com o Excel, abririam em uma coluna por linha.

Solução: verifique no gerenciador de tarefas todas as instâncias abertas do Excel.exe. Mate todas as instâncias e tente abrir o arquivo csv novamente.

facepalm

Ricky
fonte
0

A curto prazo, se você precisar abrir apenas um arquivo CSV que lhe foi enviado de outro país -

Abra o arquivo no wordpad e use find e replace para alterar todos os separadores que o país emissor usou (por exemplo;;) e substitua por uma vírgula. (por exemplo ,).

Basta verificar se o país emissor não usa vírgula no lugar de outro símbolo (por exemplo, na Espanha, eles usam vírgula em que usamos uma casa decimal, para que você precise encontrar e substituir a vírgula por uma casa decimal e depois encontrar e substituir o outro símbolo com a vírgula).

Não é uma solução a longo prazo, mas é suficiente para tornar o arquivo legível se você estiver com pressa e não puder acessar o painel de controle no trabalho.

Steve Dexter
fonte
0

Eu vim sobre o mesmo problema. Eu tinha um arquivo CSV que o Excel estava analisando incorretamente e precisava do Assistente de Importação.

A correção simples foi renomear CSV para TXT e o Assistente surgiu ajudando a reconhecer a estrutura da coluna corretamente.

Jan Bares
fonte
0

Uma resposta relacionada a isso - especialmente para problemas do MacOS / OSX com o Excel que reconhecem vírgulas:
no Excel 2019 não abre o CSV corretamente - não analisa as colunas: /superuser//a/1506042/1116939

Yaroslav Nikolaev
fonte