Como posso converter um arquivo de texto comum em um arquivo .csv e importá-lo para o Excel?

0

Eu tenho um grupo de nomes e endereços que gostaria de importar para o Outlook.

No momento, importei-os para o Excel, mas todos os nomes e endereços estão em uma entrada longa.

Todos já estão separados por uma vírgula.

Como posso obter o Excel para selecionar cada "valor" e movê-lo para uma célula separada?

Editar: eu já tinha tentado pegar um arquivo de texto e salvá-lo como um arquivo .csv. No entanto, todos os contatos são carregados em uma única célula.

Estou usando o Excel 2003.

Obrigado.

    
por Xavierjazz 16.06.2010 / 17:43

5 respostas

2

O que você precisa não é o Excel. O Excel e o Calc (OO.o) podem abrir o CSV como planilhas, mas o que você deseja é manipular o arquivo de texto em um arquivo CSV formatado corretamente.

Para isso, você quer um bom editor de texto. Há muito poucos editores de texto que permitem fazer pesquisas e substituições de múltiplas linhas (não sei por que, já que esse é um recurso incrivelmente útil e fácil de implementar). Mas um editor livre muito bom que ( sorta ) tem essa funcionalidade é Notepad2 É basicamente uma versão atualizada do bloco de notas padrão do Windows, mas não tão volumosa quanto o Notepad ++. Você pode substituir o Notepad do Windows pelo Notepad2 ou pelo Notepad ++, mas isso está além do escopo desta resposta.

Depois de instalar o Notepad2:

  1. Abra o arquivo de texto e clique em Ctrl + H para abrir a localização & substituir diálogo.
  2. Digite uma vírgula ou vírgula e espaço na caixa Search String .
  3. Agora você perceberá que a caixa Replace with: é apenas uma linha única. Tudo bem, porque o Notepad2 suporta regex logo depois de sair da caixa. Então, marque a caixa que diz Regular expression search .
  4. Apesar do que a caixa de seleção acima diz, é realmente Pesquisa de expressão regular E substituir - significando que você pode usar regexps na caixa Substituir também. Então, digite \n e clique em Replace All .
  5. Em seguida, salve como * .csv e saia. Se você abri-lo no Excel / Calc, agora deve ser uma coluna de nomes / e-mails.

Editar:

Na verdade, relendo sua pergunta, ocorre-me que você pode querer 2 colunas: 1 para email, uma para nome. Se for esse o caso, então é um pouco mais difícil de fazer do que apenas substituir todas as vírgulas por quebras de linha. Mas não tenha medo! Regexps estão aqui para ajudar mais uma vez:

  1. Abra o arquivo de texto original.
  2. Abra a pesquisa & substituir diálogo.
  3. Digite isso na caixa de pesquisa: \([^,]+\),\([^,]+\),
  4. Digite isso na caixa de substituição: ,\n
  5. Acertar Replace All .
  6. Salve como * .csv e saia.

Opcionalmente, você pode modificar os regexps para colocar um espaço após as vírgulas, se for assim que o arquivo de texto é formatado ou como você deseja formatado, por exemplo,

first last, [email protected], bob builder, [email protected], foo...
versus:
first last,[email protected],bob builder,[email protected],foo...

Editar2:

Para o sabor do Notepad ++ de regexp, você não precisa escapar de agrupamentos com barras invertidas, portanto, o regexp de pesquisa correspondente seria:

([^,]+),([^,]+),

Se houver endereços de e-mail vazios:

([^,]+),([^,]*),     // assuming that the email is the second parameter
([^,]*),([^,]+),     // make the first parameter optional

Editar3:

Para lidar com campos completamente ausentes, fica um pouco confuso. Isso ocorre porque nem o Notepad2 nem o Notepad ++ suportam grupos opcionais ou lookbehinds negativos. Então, precisamos aplicar dois regexps diferentes:

  1. Isso pega todos os e-mails consecutivos e injeta um campo vazio ( , , ) entre eles. Execute isso (com Replace All ) várias vezes até que você pare de obter correspondências.:

    ([^,]+@[^,]+), ([^,]+@[^,]+),*   // search for
    , , ,                        // replace
    
  2. Adicione manualmente o campo extra vazio no início ou no final do documento, se necessário.

  3. Dependendo se o e-mail vem primeiro ou o nome vem primeiro, substitua um destes:

    ([^,]+), ([^,]*),\s     // email first
    ([^,]*), ([^,]+),\s     // name first
    

    com:

    , \n
    

E isso deve ser feito. O \s acima é apenas um caractere de espaço. Você pode colocar um espaço lá ou escrever \s no regexp.

Nota: Eu normalmente tento evitar que uma pessoa instale um novo editor de texto / gráficos / áudio / vídeo apenas para resolver um problema específico, mas este é um exemplo onde: 1.) é muito leve ( ~ 300KB) programa gratuito que eu conheço funciona; 2.) é incrivelmente útil e quase qualquer pessoa que não tenha instalado uma substituição de bloco de notas como o Notepad2 / Notepad ++ se beneficiaria da instalação. Na verdade, eu o instalo em todos os computadores Windows que uso, e também em todas as estações de trabalho do Windows no meu trabalho.

    
por 17.06.2010 / 14:07
5

O CSV nada mais é do que uma maneira elegante de dizer "texto simples separado por vírgulas", daí o nome C S eparated V alores.

Para converter o arquivo para o formato CSV, altere sua extensão de .txt para .csv.

O Excel sabe que os arquivos com a extensão .csv são, bem, valores separados por vírgulas e colocarão cada valor em sua própria célula.

Por exemplo, comecei com este arquivo:

a,1,bla,10
2,r,sasdfa,1as0

Eu salvei como bla.csv e abri no Excel. É assim que parece:

Minha instalação é nova e não fiz alterações na configuração do Excel para abrir arquivos CSV automaticamente.

    
por 16.06.2010 / 20:08
3

Por que vale a pena, no Excel 2003 a ferramenta ainda está sob o menu Dados, mas é chamada de "Texto para Colunas" e permite que você selecione o caractere delimitador.

    
por 16.06.2010 / 18:45
2

No Excel 2007, selecione a primeira célula, vá para a guia data e clique em Convert text to table . Uma janela aparece, selecione delimitado e clique em próximo. Agora selecione o delimitador direito (vírgula no seu caso) e clique em próximo. Clique final.

Verifique aqui também uma explicação mais detalhada: link .

    
por 16.06.2010 / 18:07
-1

Eu escrevi um pequeno script PHP para você, digite a linha delimitada "," em aqui e clique em enviar. Selecione e copie a lista e cole-a na primeira célula do Excel.

    
por 16.06.2010 / 22:56