O MS Excel pode usar caracteres não imprimíveis como separadores de campo em arquivos CSV? Se sim, como?

2

Acabei de descobrir que muitas das codificações de caracteres têm caracteres não imprimíveis projetados para separar diferentes informações a>, por exemplo, o caractere ASCII 31 é o "separador de unidade". Parece que se eu pudesse usar um desses caracteres como separador em um "valor separado por vírgula / caractere" (CSV), poderia evitar problemas em escapar dos valores que poderiam ocorrer no texto, por exemplo, vírgulas.

É possível fazer com que o MS Excel (2007) use o "separador de unidade" em vez de uma vírgula? Se sim, como posso fazer isso?

Editar:

Como posso inserir o caractere não imprimível? Se eu tentar pesquisar Unicode "001F" no Mapa de Caracteres, recebo uma caixa em branco realçada e uma mensagem "Nenhum caractere disponível", conforme mostrado abaixo:

Prefiro não instalar um programa especial apenas para gerar o caractere não imprimível, mas posso, se for necessário.

    
por kc2001 25.03.2014 / 19:55

2 respostas

3

Um teste rápido verifica que @ bobSmith1432 tem uma solução viável.

Eu usei o Notepad ++ para gerar o caractere ASCII 31 e copie-o para colar no campo List separator: .

No Windows 7, vá para Control Panel e selecione Region and Language . Na guia Format , clique no botão Additional settings... . Isso abrirá a janela Customize Format . Aqui, altere a vírgula no campo List separator: para seu caractere ASCII 31 colando-o de alguma outra fonte.

Você provavelmente deve alterar isso de volta para uma vírgula imediatamente após salvar sua planilha como um arquivo CSV.

Editar: Como alternativa ao Notepad ++, você pode usar o bloco de notas antigo comum. Com o bloqueio numérico ativado, abra o Bloco de Notas, mantenha pressionada a tecla Alt e tecle 0 3 1 no teclado numérico . Em seguida, solte a tecla Alt . Pressione Ctrl A e depois Ctrl C para selecionar o caractere não imprimível e copiá-lo. Você pode colar o caractere na janela Customize Format .

    
por 25.03.2014 / 21:18
1

Eu só pensei em outra maneira de fazer isso. Crie uma planilha adicional na planilha que você deseja exportar. Em A1 da nova planilha, coloque a seguinte fórmula:

=CONCATENATE(Sheet1!A1,CHAR(31),Sheet1!B1,CHAR(31),Sheet1!C1)

Altere Sheet1 para ser o nome da planilha que você deseja exportar como CSV. Repita o padrão para colunas adicionais. A fórmula acima agarra as colunas A , B e C . Para D , use o seguinte:

=CONCATENATE(Sheet1!A1,CHAR(31),Sheet1!B1,CHAR(31),Sheet1!C1,CHAR(31),Sheet1!D1)

Espero que você possa ver o padrão lá. Copie essa célula para quantas linhas desejar. CHAR(31) está inserindo o caractere ASCII que você deseja.

Em seguida, salve como CSV e apenas exporte essa nova planilha. Como você tem apenas uma coluna, nenhuma vírgula ou outro separador será adicionado.

    
por 26.03.2014 / 15:20