O Excel formata uma String para Data em um arquivo CSV. Como posso manter o valor da string original?

5

Estou encontrando um problema no Microsoft Excel 2010 sobre a formatação automática de uma String em uma data e parece perder o valor original da célula.

Etapas para reproduzir:

1 Crie o seguinte arquivo CSV:

 username, points
 phil, 1
 october51, 5

2 Abra o arquivo no Microsoft Excel 2010

Observação: há uma linha com o nome de usuário october51 . Gostaria que o Excel retivesse esse valor em vez de convertê-lo em algum outro valor.

Arquivo CSV de amostra aberto em um editor de texto

Quando abro esse arquivo CSV de amostra em um editor de texto (por exemplo: gVim), vejo exatamente o que espero:

ArquivoCSVdeamostraabertonoMicrosoftExcel2010

Noentanto,quandoabrooarquivoCSVnoExcel,eleformataoctober51aOct-51.

Entendo porque o Excel está tentando formatar o campo em um formato mais legível, mas prefiro manter o valor como october51 , já que é o nome de usuário de alguém.

Tentando diferentes formatos de células no Excel

Observe que quando o arquivo é aberto pela primeira vez, o formato do campo para a célula Oct-51 é Personalizado . Então, tentei alterar o formato para Texto

Isso não é melhor. O valor da célula é 18902 , em vez de october51 , que é o que eu esperava. Parece que o Excel joga fora o valor original da célula imediatamente ao abrir o arquivo.

Eu tentei todos os formatos possíveis (por exemplo: Geral, Texto, Especial, Personalizado) e nenhum deles exibe o valor october51 .

O verdadeiro problema é que essa formatação de célula é mantida quando o arquivo é salvo. Se eu salvar este arquivo no Excel e reabri-lo em um editor de texto, o nome de usuário october51 foi alterado para Oct-51 ou 18902 , dependendo do formato escolhido para a célula.

Como posso fazer o Excel manter o valor original da string da célula?

    
por ampersandre 17.11.2014 / 22:13

4 respostas

4

Experimente os passos abaixo:

Renomeie o arquivo CSV para ter uma extensão de TXT (exemplo: sample.txt). Abra uma planilha em branco do Excel > vá para "Arquivo" > Abra > Na janela Abrir pesquisa, navegue no arquivo .csv escolhendo "Arquivos de texto (* .txt, * .csv)" na lista suspensa > clique em 'Abrir', mas agora. Consulte as capturas de tela passo a passo abaixo:

Desmarque a guia e marque a caixa Comma:

Escolhaobotão"Texto" e clique no botão "Concluir".

Espero que isso ajude.

    
por 17.11.2014 / 23:24
3

Em vez de abrir o arquivo CSV com o Excel, crie uma nova planilha e inicie o Assistente de Importação de Texto (na guia Dados, no grupo Obter Dados Externos, clique em Do Texto). Na etapa 3, você poderá clicar no cabeçalho da coluna e alterar o tipo de dados da coluna para Texto. Isso impedirá que o Excel interprete os dados como data.

Para mais informações sobre o Assistente de importação de texto, consulte este artigo .

    
por 17.11.2014 / 22:55
1

Acabei de usar o Calc do LibreOffice em vez do Excel.

Abrir o arquivo CSV no LibreOffice Calc não manipula o october51 data

    
por 17.11.2014 / 22:32
0

Eu estava tendo o mesmo problema ao usar o VBA para importar um CSV. Eu encontrei este corrigido o problema de csv importação alterando o texto que começou com JANxxx, FEBxxx, MARxxx etc. em uma data era simplesmente definir .TextFileColumnDataTypes = Array (2, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1). A alteração do primeiro valor da matriz para 2 interrompeu a interpretação incorreta da primeira coluna, que era a que continha o texto que estava sendo interferido.

    
por 04.03.2018 / 22:19