Como obtenho o Excel para importar um arquivo CSV com vírgulas em alguns dos campos de conteúdo?

12

Como obtenho o Excel para importar meu arquivo CSV ?

Arquivo

Eu tenho um arquivo que afirma ser CSV. Ele contém 10 campos, todos entre aspas duplas (sim, até mesmo as datas e números). 2 ou 3 desses campos contêm vírgulas . Mas os dados nesses campos também são cercados por citações.

Problema

Quando tento abrir este arquivo, o Excel ignora completamente as aspas e assume que elas fazem parte dos dados.

Portanto, ele divide os campos que contêm vírgulas em várias colunas.

Isso é ruim, pelo menos para mim.

Exemplo de dados

"20051", "", "2009 Sep 30 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT", "45 - SOMETEXT - SOMETEXT, 1162 - SOMETEXT - SOMETEXT, 140 - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT"
"20052", "SOMETEXT", "2009 Sep 08 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT", "103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT"

O que eu tentei?

Eu usei o recurso de importação para especificar delimitadores e tal, mas isso não parece ajudar.

Eu tentei trocar "Text Delimiter" de aspas duplas para "{none}" e vice-versa. Isso parece afetar apenas a primeira coluna. Isso seria resasonable se fosse possível clicar nas outras colunas e aplicar essa configuração a cada uma delas. Mas este não é o caso, e parece que isso se destina a trabalhar em colunas.

O que mais posso experimentar?

    
por Rory Becker 07.10.2009 / 12:04

8 respostas

13

Eu apenas tentei um teste rápido que replicou seu problema.

Eu criei um CSV de 1 linha no Word (que usa aspas inteligentes) como test.csv "123", "4,5,6" e abriu no Excel como você descreveu.

Tente substituir "e" por "

Tendo jogado com sua amostra, noto que o Excel não gosta dos espaços entre os campos

por exemplo. em vez de

"20051", "", "2009 Sep 30 02:53:23", ...

você quer

"20051","","2009 Sep 30 02:53:23",...

um substituto de expressão regular decente deve ser capaz de lidar com ele

Find:    |("[^"]*",) |
Replace: ||

(caracteres de canal apenas para sugestões visuais)

Ou simplesmente modifique o código .Net se você tiver acesso a ele; -)

Além disso, como apontou Arjan out , você também pode precisar converter o arquivo de UTF-8 para ANSI para impedir que a célula A1 contenha a BOM e seus qoutes adjacentes.

Eu vi o Catch 22 do CSV codificado em ANSI não manipulando caracteres internacionais e o CSV codificado em UTF não sendo manipulado pelo Excel; e não encontrei uma solução enquanto mantinha o CSV. Se o suporte a caracteres internacionais for necessário, os formatos XML (ou XLS nativo) parecerão o único caminho a seguir - com o custo da simplicidade.

    
por 07.10.2009 / 12:32
7

Este problema tem me atormentado por vários anos. Acabei de descobrir a solução e é mencionado nas respostas acima, mas não explicitamente explicitadas.

É o espaço depois da vírgula!

Isso não é importado para o Excel;

HEADER1, HEADER2
"1,000", "2,000"

Enquanto

HEADER1,HEADER2
"1,000","2,000"

Funciona!

    
por 13.06.2015 / 08:52
2

Você também pode tentar CSVEd , que é gratuito.

    
por 07.10.2009 / 12:24
2

When I try to open this file, Excel completely ignores the quotes and assumes that they are part of the data. It therefore splits the fields containing commas into multiple columns.

Se você não estiver usando acidentalmente citações inteligentes como lumbarius sugerido , e supondo que você esteja no Windows: isso pode ser devido às suas configurações regionais. Ao clicar duas vezes ou usar Arquivo »Abrir, o Excel não solicita detalhes, mas simplesmente usa essas configurações.

Ainda assim, o manual que invoca a função de importação (como você fez) deveria ter funcionado, então duvido que alterar as configurações regionais ajude ...

    
por 07.10.2009 / 12:38
1

Você verificou a codificação de caracteres do seu arquivo? Tente definir a codificação de caracteres para UTF-8.

Você pode usar o notepad2 para alterar a codificação de caracteres.

    
por 07.10.2009 / 12:18
1

Apenas adicione as respostas aqui: concentre-se no SPACES depois do COMMAS nos seus arquivos CSV. O Excel não gosta destes se você tiver campos entre os seus dados.

Gostei do Excel (4 colunas de dados):

a, b, c, d

Mas não gosta de (3 colunas de dados):

a, "b, c", d

Ele gosta (3 colunas de dados):

a,"b, c",d
    
por 27.04.2016 / 18:14
1

Eu encontrei esse problema hoje e também encontrei uma solução que funcionou para mim.

Meu ambiente / contexto: Eu tenho uma página da web com algumas perguntas (formulário) que contêm aspas duplas e vírgulas. As perguntas e as respostas são retiradas do banco de dados e gravadas em um arquivo do Excel para fins de relatório.

Eu tive o mesmo problema descrito acima: As perguntas que incluíam aspas duplas e vírgulas estavam sendo divididas em várias colunas no Excel.

Para os meus propósitos, usou duas aspas simples no lugar de aspas duplas resolveu o problema.

- > no site, duas citações simples se parecem com aspas duplas para os visitantes do site

- > No arquivo do Excel, novamente, duaspas simples se parecem com aspas duplas para os usuários que visualizam os dados do relatório

Eu percebo que essa solução não funcionará para todos, mas espero que ajude alguém.

    
por 23.06.2014 / 21:42
1

Eu consegui fazer isso usando:

a,b,c,"=""(1,2,3)"""

que fornece quatro colunas:

|  a  |   b   |   c   |   (1,2,3)   |
    
por 06.05.2014 / 03:50