O que devo fazer com as novas linhas neste arquivo CSV para que seja importado corretamente para um banco de dados ou planilha?

0

Eu tenho um arquivo .csv que foi exportado de um sistema de banco de dados de registros de saúde eletrônico proprietário. Eu era assinante do serviço deles, mas ao encerrar minha assinatura, é assim que consigo manter meus dados e migrá-los para outro sistema. Em suma, eu preciso importá-lo em um banco de dados ou planilha para que eu possa usar a mala direta do Word para recriar os documentos do registro médico em um formato legível e imprimi-los.

O problema é que quando abro o arquivo diretamente com o Excel ou o importo com o Access, há formatações de novas linhas em muitas das entradas do campo de dados que estão sendo interpretadas como separadores de registro. Isso faz com que o Excel ou o Access inicie uma nova linha no meio da entrada, o que, obviamente, estraga tudo. Quando abri o arquivo com o Notepad ++ e liguei "Mostrar todos os caracteres", posso ver que as novas linhas do separador de registro verdadeiro são símbolos CR LF, mas as novas linhas de formatação nas entradas são símbolos LF por si mesmas. De uma leitura rápida, aprendi que as entradas de campo de dados CSV que contêm uma nova linha devem, idealmente, ser colocadas entre aspas duplas, mas as do meu arquivo não são, então presumo que essa seja a origem do problema.

Como devo proceder para corrigir isso? Existe uma maneira com o Access, o Excel ou qualquer programa de código aberto para que ele possa renderizar as LFs por conta própria como uma nova linha de formatação dentro da entrada do campo de dados? Você pode converter os LFs solo para algum outro tipo de nova linha para que eles sejam renderizados corretamente? Mesmo que ele ignorasse apenas as LFs que não foram precedidas por CR, talvez quando usar posteriormente a mala direta do Word para gerar os documentos, ela renderizasse as LF corretamente como novas linhas? Outra possibilidade que pensei que poderia funcionar era fazer algum tipo de operação de localizar / substituir para substituir todos os LFs solo por outro caractere até importá-lo para o banco de dados, depois substituir esse caractere pelo tipo apropriado de nova linha, uma vez no banco de dados. ou depois que eu criei o documento via mala direta. Ou há algum tipo de operação de localizar / substituir que poderia apenas incluir cada entrada de campo contendo um LF solo entre aspas duplas? Poxa, mesmo que haja uma maneira de incluir seletivamente todas as entradas do campo de dados no arquivo entre aspas duplas, ele ainda deve funcionar, certo? Só não tenho a certeza da maneira mais fácil de proceder daqui e apreciar quaisquer sugestões.

    
por Fonebone 05.07.2014 / 03:25

2 respostas

1

No notepad ++, a expressão regular "[^ \ r] \ n" corresponderá a LF, mas não a CRLF. Agora substitua isso com o que você quiser. Esta resposta tem informações úteis.

    
por 05.07.2014 / 05:22
0

Se o CSV for citado corretamente, ou seja, aspas duplas em torno de tudo o que poderia ser interpretado como uma delimitação de uma 'célula', então LibreOffice deve fazer o trabalho. (YMMV) Veja Wikipedia para obter uma descrição do formato CSV.

    
por 11.11.2015 / 16:06