Eu tenho um aplicativo da web que está exportando seus dados para um arquivo CSV. Aqui está um exemplo de linha do arquivo CSV em questão:
28,"65154",02/21/2013 00:00,"false","0316295","8316012,8315844","MALE"
Como não consigo postar uma imagem, terei que explicar os resultados no Excel. O campo "0316295" é transformado em número e o 0 inicial desaparece. O "8316012,8315844" é interpretado como um único número: 83,160,128,315,844. Obviamente, esse não é o resultado pretendido.
Vi pessoas recomendando uma citação única para esses casos, mas isso também não funciona.
28,"65154",02/21/2013 00:00,"false","'0316295","'8316012,8315844","MALE"
A citação única é visível o tempo todo na célula no Excel, embora, se eu mesmo inserir um número com uma citação simples à esquerda, ele mostrará apenas a sequência pretendida e não a aspas simples com a sequência.
Importar não é o mesmo que digitar, ao que parece.
Alguém tem uma solução aqui?
fonte
Respostas:
Isso deve funcionar
fonte
00E3
por 0 (0 * 10 ^ 3) e o exibe como notação científica (0,00E + 00). Na verdade, faz o mesmo para"00e3"
sem o=
. Mas="00e3"
funciona perfeitamente. (abrindo um CSV com Excel 2010)Para manter o (s) zero (s) inicial (is), você pode definir o formato dessa coluna específica como Texto no Assistente de Importação de Texto.
"
. Clique em Avançar .É aqui que você pode especificar os formatos . Clique no cabeçalho da coluna cujos zero iniciais você deseja preservar. Selecione o texto . (Veja a imagem abaixo)
Clique em Concluir e selecione um local adequado para seus dados. Resultado da amostra:
Edit : Existe outra maneira ; exporte o aplicativo Web para um arquivo .TXT delimitado por vírgula, em vez de .CSV (ou apenas altere a extensão do arquivo exportado após salvá-lo). Isso força o Excel a passar pelo assistente de importação quando eles abrem o arquivo. Como uma vantagem adicional, reduz as chances de os usuários modificarem ou violarem seus dados brutos originais.
fonte
.TXT
vez de.CSV
(ou apenas altere a extensão do arquivo exportado). Esse tipo de "força" os usuários a passar pelo assistente de importação quando abrem o arquivo.O Excel trata valores numéricos começando com um caractere de tabulação como texto.
Aparecerá como:
| é o limite da célula (para fins ilustrativos). Portanto, por exemplo, se o seu sistema gerar o arquivo CSV usando o utf-8 charset, você poderá adicionar o
	
(Tab Char em Hex) antes do seu valor numérico para forçar o Excel a interpretá-lo como texto.fonte
O Excel detectará automaticamente o formato de um campo CSV, a menos que a coluna CSV esteja neste formato:
Isso também funciona para folhas do Google
fonte
Você precisaria usar a funcionalidade "Dados -> Obter dados externos -> Importar texto do arquivo" no Excel para exibi-la como texto. Este é o assistente de importação de texto @Kaze mencionado.
A única maneira de forçar o Excel a exibir números como texto da entrada, sem que o usuário precise fazer nada, é produzir um arquivo do Excel e especificar um "formato de número personalizado" nele. Eu recomendo usar uma biblioteca de exportação XLS para isso, pois não parece tão simples quanto adicionar uma linha de texto de configuração em um arquivo CSV.
fonte
tente a função clean para valores que estão bagunçados. Por exemplo = limpo ("12345678901234567890"). Funciona para mim em números, datas, horas etc. Eu advertiria que, como esse não é o objetivo desta função, isso pode parar de funcionar com novas versões etc.
fonte