Como abrir arquivos CSV delimitados por ponto e vírgula na versão US do Excel


95

Quando clico duas vezes em um arquivo .csv, ele é aberto no Excel. Os arquivos csv têm colunas delimitadas por ponto e vírgula (não vírgulas, mas também um formato válido).

Usando uma instalação alemã do Windows / Excel, o arquivo aberto é exibido corretamente, as colunas são separadas onde os pontos e vírgulas existiam no arquivo csv.

Mas quando eu faço o mesmo em uma instalação do Windows / Excel em inglês (EUA-), apenas uma coluna é importada, mostrando todos os dados, incluindo os pontos e vírgulas na primeira coluna.
(Não tenho uma configuração em inglês disponível para testes, os usuários relataram o comportamento)

Tentei alterar o valor do separador de lista nas configurações regionais do Windows, mas isso não mudou nada.

O que posso fazer para poder clicar duas vezes nesses arquivos CSV em uma configuração em inglês?

EDIT:
Parece ser a melhor solução para não confiar em arquivos CSV neste caso. Eu esperava que houvesse alguma formatação para arquivos CSV que possibilitasse usá-los internacionalmente.
A melhor solução parece que vou mudar para a criação de arquivos XLS.


1
Você pode recomendar que seus usuários usem o LibreOffice Calc - ele lida com CSVs com separadores arbitrários.
naught101

Respostas:


1

Esses arquivos são distribuídos? baixado? Gerado localmente?

Eu acho que a maneira única de resolver seu problema sem acessar o PC do usuário e sem que ele precise fazer algo diferente de "clicar duas vezes" no arquivo é converter os arquivos em .xls antes de distribuir ou colocar para baixar ou gerar um .xls (ou outro formato que funcione) em vez de um arquivo .csv. Você pode fazer isso com um script ou manualmente com um Excel funcional, dependendo do número de arquivos e da maneira como eles são gerados.


Sim, acho que é a melhor maneira de criar diretamente arquivos XLS. Eu esperava que houvesse alguma formatação para arquivos CSV que os tornasse utilizáveis ​​internacionalmente, mas se isso não for possível, os arquivos XLS funcionarão independentemente de onde.
precisa saber é o seguinte

8
Como é essa a resposta correta, é inútil.
Stevie G

Resposta terrível - veja a outra resposta votada.
jmc 25/09

203

Adicione isso na primeira linha do arquivo CSV:

sep=;

ou

sep=,

Isso substituirá a configuração do sistema ("caractere separador de lista") e o Excel abrirá o arquivo corretamente.


4
+1 fez isso no excel 2010 e funcionou perfeitamente.
N Reed

8
Existe uma lista de outras configurações desse tipo? Dizendo para o Excel usar, como o separador decimal geralmente acompanha o processo; como o separador de colunas.
precisa saber é o seguinte

5
Funciona perfeitamente para o Excel, mas observe que isso pode não ser suportado em outras planilhas ou programas de dados. Pode ser apenas um pequeno problema, simplesmente mostrando uma primeira linha extra com sep=ou sep=;nela, mas alguns programas ou scripts automatizados podem não esperar a primeira linha extra, resultando nos cabeçalhos das colunas ou na sep=;própria linha sendo interpretada como dados reais.
Sygmoral

5
Tenha cuidado com isso. Se você salvar no Excel, ele irá: - Remover a especificação do separador - Salvar com o separador de configuração regional
Bjinse 17/14

1
Pode confirmar fwrite($fileHandle, 'sep=,' . "\r\n");completamente corrigido o problema com fputcsvem PHP.
H2ooooooo 21/05

26

Você pode usar o Assistente para importação de texto. Isso não funciona com um clique duplo aberto, mas é o melhor que posso apresentar que não envolve mexer nas configurações de idioma.

No Excel 2003, vá para Data-> Import External Data-> Import Datana barra de menus (não posso dizer onde está em 2007, não tenho isso em mãos no momento). Encontre e selecione seu arquivo CSV.

Quando se abre, você obtém o Text Import Wizard, que permite especificar o (s) delimitador (es) a usar.


No Outlook 2007, acesse a guia Dados, selecione sua coluna e clique no botão Texto em colunas nos conjuntos de ferramentas de dados.
Hondalex 26/08/10

1
Sim, isso é uma solução. Infelizmente, os usuários que precisam examinar os dados não estão dispostos a fazer isso. Eles podem lidar com um "clique duplo aberto", mas não poderão fazer nada mais complicado. Tentamos educá-los pelo menos um pouco, mas eles recusam.
precisa saber é o seguinte

1
@ Holgerwa - é possível executar os arquivos através de algum tipo de processo de conversão antes de entregá-los aos usuários? Ou eles precisam permanecer delimitados por ponto e vírgula? Outros sugeriram isso, mas deve ser bastante fácil trocar ponto-e-vírgula por vírgulas usando algum tipo de script (eu recomendaria uma busca / substituição simples, porque você não deseja converter essas aspas internas).
DMA57361

6

Veja este artigo:
Problemas ao abrir arquivos CSV com o Excel? O problema de vírgula e ponto e vírgula no Excel devido às configurações regionais da Europa

Que oferece 3 soluções:

  • Altere a extensão do arquivo CSV para TXT (quando você abre um arquivo TXT com Excel, ele inicia o assistente de importação de arquivos de texto, onde você pode escolher o delimitador)
  • Substitua todos os "," por ";" nos seus arquivos CSV
  • Alterar suas configurações regionais e de idioma

Como você alterou apenas o valor do separador de lista nas configurações regionais do Windows, observe que o artigo diz para inserir “.” Para Decimal Symbole “,” para List Separator.

Se você se sentir confortável com o VBA, consulte:

Abrindo arquivo CSV delimitado por ponto e vírgula com VBA no Excel 2000
Exportando e importando texto com o Excel


Concordo, todas as opções válidas, mas infelizmente não estou em uma situação normal com os usuários desses arquivos CSV. .TXT-import não funcionará (veja meu comentário na resposta do DMA57361), substituir os pontos-e-vírgulas por vírgulas não funcionará devido a problemas no separador decimal, e alterar as configurações regionais não funcionará porque eu não tenho acesso ao PCs usados. Os usuários irão apenas clicar duas vezes nos arquivos e, se não conseguirem o que esperam, reclamarão e se recusarão a ajudar na resolução do problema.
Holgerwa

@ Holgerwa: Se você não controla os PCs dos usuários, não há nada que possa fazer. Como minha outra sugestão seria alterar o manipulador para a extensão .csv para ser seu próprio programa, que corrigirá (mas de maneira inteligente) os delimitadores e chamará o Excel.
precisa saber é

@ Holgerwa: Observe minha edição acima em relação às configurações regionais.
harrymc

3

A melhor maneira que tentei é definir as configurações regionais do seu computador como abaixo:

  • no "Padrão e formatos", escolha "Inglês (Estados Unidos)";
  • em "Locais", escolha "Estados Unidos".

Funciona para mim, apenas tente.


Na verdade, a questão do OP é o oposto. Deve mudar para uma região europeia para obter vírgula como símbolo decimal e, em seguida, ponto e vírgula será o separador de lista.
yosh m

0

Se não houver outras vírgulas no arquivo, você pode simplesmente localizar / substituir um editor de texto nos pontos e vírgulas para transformá-las em vírgulas. Trate como arquivo csv normal depois disso.


Esses arquivos CSV precisam funcionar em diferentes países (configurações regionais) e, em muitas configurações regionais, a vírgula é o separador decimal em vez do ponto. Um arquivo de valores separados por vírgula "padrão" não funcionará. Eu acho que essa é a razão pela qual ponto e vírgula foi adicionado como um delimitador válido para arquivos CSV.
Holgerwa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.