Venho pesquisando há algum tempo tentando descobrir como gerar um arquivo CSV de maneira a forçar o Excel a interpretar os valores como uma sequência e não tentar convertê-los em números ou datas.
por exemplo:
"141", "10/11/2002", "350.00", "1311742251"
O Excel tenta "inteligentemente" converter tudo isso em seus formatos de data / número nativos. Existe uma maneira de contornar isso?
EDIT: Esclareceu a intenção da minha pergunta, desculpe por confusão.
fonte
"=""123"""
outra forma, está mal formada. Os campos contendo a"
devem ser delimitados e os"
s no campo escapados com outros"
s.="123"
não é um campo CSV válido porque contém o caractere delimitador de campo"
sem o delimitar corretamente ou ao campo. O fato de o Excel lê-lo como uma fórmula depende exclusivamente do Excel e nada tem a ver com o arquivo CSV.Como muitos, tenho lutado com as mesmas decisões que a Microsoft toma e tentou várias soluções sugeridas.
Para o Excel 2007, segue o seguinte:
Contudo:
Colocar uma guia antes de todos os valores antes de colocar aspas duplas em torno deles evita conversões para datas E evita o corte de zeros à esquerda ou à direita e a planilha nem mostra marcadores de aviso desagradáveis no canto superior esquerdo de cada célula.
Por exemplo:
Observe que o caractere de tabulação deve estar entre aspas duplas. Edit: acontece que as aspas duplas nem são necessárias.
Clicar duas vezes no arquivo csv pode abrir o arquivo como uma planilha no Excel, mostrando todos os valores tratados como acima, como dados de texto. Certifique-se de definir o Excel para usar o '.' como ponto decimal e não o ',' ou todas as linhas do arquivo csv terminarão como um texto na primeira célula de cada linha. Aparentemente, a Microsoft acha que CSV significa "Valor não separado pelo ponto decimal".
fonte
O uso da funcionalidade de importação do Excel permite especificar o formato (automático, texto ou data) em que cada coluna deve ser interpretada como e não requer nenhuma modificação nos arquivos de dados.
Você pode encontrá-lo como
Data
→Get External Data
→From Text
no Excel 2007/2010.Ou
Data
→Import External Data
→Import Data
no Excel 2003.Aqui está uma imagem do Assistente para importação de texto do Excel 2003 em ação nos dados de exemplo fornecidos, mostrando-me a importação das duas últimas colunas como texto:
fonte
O exemplo de Simon não funcionou para mim e suspeito que seja uma diferença de idioma. Em C #, aqui está a aparência da minha string de formato de trabalho:
e é assim que o arquivo de saída se parece:
Como pode ser visto, o formato no arquivo de saída
="VALUE",
não é o"=""VALUE""",
que acredito ser uma convenção do Visual Basic.Estou usando o Excel 2010. Aliás, o Planilhas Google não abrirá / converterá um arquivo formatado dessa maneira. Funcionará se você remover o sinal de igual assim
"VALUE",
- o Excel ainda abrirá o arquivo, mas ignorará o fato de que você deseja que suas colunas sejam cadeias de caracteres.fonte
Uma maneira simples de forçar o Excel a interpretar a data como texto é colocar uma aspas simples antes da data, em vez de usar aspas completas, como em:
Se você puder importar o CSV em vez de abri-lo, poderá informar ao Excel qual formato cada coluna deve ter. Dê uma olhada nesta pergunta que eu fiz .
fonte