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.
fonte
Respostas:
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.
fonte
Adicione isso na primeira linha do arquivo CSV:
ou
Isso substituirá a configuração do sistema ("caractere separador de lista") e o Excel abrirá o arquivo corretamente.
fonte
sep=
ousep=;
nela, mas alguns programas ou scripts automatizados podem não esperar a primeira linha extra, resultando nos cabeçalhos das colunas ou nasep=;
própria linha sendo interpretada como dados reais.fwrite($fileHandle, 'sep=,' . "\r\n");
completamente corrigido o problema comfputcsv
em PHP.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 Data
na 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.fonte
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:
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 Symbol
e “,” paraList 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
fonte
A melhor maneira que tentei é definir as configurações regionais do seu computador como abaixo:
Funciona para mim, apenas tente.
fonte
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.
fonte