O Excel coloca apenas aspas em torno de determinados campos. Como forço o Excel a salvar um arquivo CSV com aspas em todas as colunas?
O Excel coloca apenas aspas em torno de determinados campos. Como forço o Excel a salvar um arquivo CSV com aspas em todas as colunas?
Respostas:
Se você abrir o arquivo XLS no LibreOffice ou OpenOffice, em Salvar como .... e escolher CSV de texto, isso permitirá gerar um arquivo CSV que também inclua aspas como delimitadores. Por exemplo: "Smith", "Pete", "Canadá" "Jones", "Mary", "Inglaterra"
Marque a caixa "Citar todas as células de texto":
Para também citar campos numéricos, realce seu intervalo de células e altere a formatação da célula para "texto" antes de salvar.
Esta página também tem a solução que sai diretamente da boca do cavalo:
http://support.microsoft.com/kb/291296/en-us
Se o link degradar, o tópico a ser pesquisado é:
"Procedimento para exportar um arquivo de texto com delimitadores de vírgula e de cotação no Excel" e / ou "Q291296"
tl; dr: use sua macro
Encontrei esta solução fácil:
"''"@"''"
(veja detalhes abaixo)A string que você está colando é: "''"@"''"
aspas duplas, aspas simples, aspas simples, aspas duplas, @ símbolo, aspas duplas, aspas simples, aspas simples, aspas duplas.
Editado para o Excel 2010 a partir das informações encontradas aqui .
\"@\"
O PowerShell parece despejar corretamente. então algo como
procure powershell.exe na máquina Windows se você não conhece o powershell.
import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8
Espero que ajude alguém.
import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8
. lembre-se de usar aspas simples em torno de nomes de arquivos com espaços ou outros caracteres especiais.
Isso foi o mais fácil para mim: importei a planilha para o Access 2010 e a exportei de lá como um arquivo de texto delimitado. Deu-me as aspas em torno dos meus campos. Leva menos de um minuto para 42k linhas agora que tenho as etapas abaixo.
Eu encontrei outro trabalho em torno do qual não envolve a macro VBA, mas que requer o Notepad ++ ou um editor de texto baseado em macro semelhante.
Exporte seu arquivo como texto separado por tabulações e abra o arquivo exportado no Notepad ++. Substitua todas as instâncias do caractere 'tab' pelo texto "," (ou seja, literalmente aspas duplas, vírgula, aspas duplas) e use outra macro para prefixar e sufocar cada linha de texto com aspas duplas.
Um pouco hacky, mas achei mais rápido do que fazer uma macro VBA funcionar.
Destaque as células que você deseja adicionar as aspas. Vá para Formatar -> Células -> Copiar / colar personalizado o seguinte no campo Tipo: \ ”@ \” Clique em “ok” Fique feliz por não ter feito tudo manualmente.
De: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/
"''"@"''"
(veja detalhes abaixo)' '
(aspas simples repetidas) por "
(aspas duplas);
Se você usar o Notepad ++ para adicionar aspas ao início de cada linha, basta abrir o arquivo csv exportado, colocar o cursor na 1ª linha, 1ª coluna e clicar no menu Editar / Editor de Colunas ... , no campo ' Texto a inserir ', digite " , o início de cada linha terá uma citação e você poderá usar a expressão regular para pesquisar / substituir todas as guias.
Para usuários do Windows
Observe que esta não é a mesma citação de teclado que possui uma variedade de avanço e retrocesso.
Portanto, se estiver usando CSV para LOAD na tabela Mysql, recorte e cole no parâmetro ENCLOSED, caso contrário, você se perguntará por que recebe a mensagem#1083 - Field separator argument is not what is expected
Usei a abordagem abaixo para pegar três colunas no Excel e criar a string na quarta coluna.
=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""
Meu problema com a "''"@"''"
abordagem é que a segunda coluna dos meus dados era um número que a "''"@"''"
abordagem não fez nada com os números. Às vezes, a segunda coluna está em branco, mas eu precisava ter certeza de que estava representada no arquivo de texto final.
Outra maneira, se você tiver acesso ao MS (eu tenho o ver 2007), importe o arquivo e exporte-o como um arquivo de texto. Altere o arquivo .txt para .csv. Observe que todos os campos numéricos não terão aspas duplas, portanto, se você precisar de aspas duplas também, enquanto estiver no Access, altere o campo de um campo numérico para um campo de texto.
A exportação de seqüências de caracteres separadas por vírgula e entre aspas pode ser feita apenas com o Excel 2016 e o Bloco de Notas, usando uma cópia dos dados, uma fórmula, uma exportação, uma alteração nas propriedades do arquivo, uma substituição no Bloco de Notas, salvando o arquivo exportado e a limpeza. Cada um é um passo simples. Em detalhe:
Copie as colunas a serem exportadas para uma nova planilha intermediária para preservar o original e como backup, com a nova planilha a ser excluída posteriormente para deixar a planilha como estava.
Coloque caracteres que não ocorram, diga '#' ou ';-)' em cada extremidade de uma string na coluna, diga A com a fórmula =concat("#",trim(A1),"#")
, colocando a fórmula em todas as linhas de outra coluna.
Copie a (s) nova (s) coluna (s) de volta em A ..., usando o método '123' para não carregar a fórmula.
Exporte a planilha como um arquivo CSV, para inserir vírgulas entre os campos, incluindo números.
Altere as propriedades file.csv para que possam ser abertas com o Bloco de notas.
Use o Bloco de notas para substituir os caracteres arbitrários por '"'.
Embora pareça sensato usar "como caractere arbitrário, ele deve ser colocado em uma célula diferente, digamos '$ A $ 50' e, em seguida, o que aparece na exportação é '" ""', aparentemente outro gatilho inconveniente.
No bloco de notas, o arquivo deve ser salvo, tornando-se um arquivo * .txt a ser importado e o intermediário * .csv excluído.
Com a limpeza da missão extra da planilha realizada.
Talvez as ferramentas de exportação do Access possam um dia ser incorporadas ao Excel. Uma abordagem mais genérica entre os programas que usam recortar e colar seria fazer com que as opções de colagem incluíssem uma maneira de interpretar a estrutura de saída e fornecer delimitadores.
A resposta de Michael de 21 de agosto de 2014 é realmente útil. No entanto, eu tive que executar uma etapa ou duas adicionais:
Esta é a minha receita. Eu odeio ter que fazer isso, mas não tinha maneira melhor. No meu caso, não estou recebendo cotações em nenhum campo. Eu também precisava usar a codificação UTF-8 e; em vez de guias, então foi isso que eu acabei de fazer.
NOTA: devido à ilegibilidade de colocar aspas duplas entre aspas simples e assim por diante, usei propositadamente a "formatação do teclado" para indicar pressionamentos de tecla e caracteres e cadeias literais.
Eu já tive esse problema várias vezes. Aqui está a solução mais simples que encontrei.
O acesso permitirá que você especifique o delimitador de exportação como vírgula e os campos de texto qualificados com aspas. No assistente de exportação, você pode especificar qualquer delimitador ou caractere em torno das seqüências desejadas.
Pode ser necessário criar uma consulta do Access para organizar os campos em uma ordem específica ou ocultar o campo de identificação automática adicionado pelo Access.
Além disso ... depois de exportado para um CSV, NÃO o abra novamente no Excel. Se você quiser ver os resultados, abra-o no bloco de notas. O Excel tem uma tendência a mexer com os dados de um csv .... Acho que foram campos preenchidos com zeros à esquerda se me lembro corretamente.
Veja como usar o aplicativo OpenOffice para obter uma planilha do Excel e criar um arquivo de texto (csv) com aspas em todos os campos de texto.
Abra o arquivo do Excel com o OpenOffice e siga estas etapas:
Arquivo> Salvar como
Forneça um novo nome para o arquivo que você está prestes a criar
Para Tipo de arquivo, escolha "Testar CSV (.csv)"
ative a caixa de seleção "Editar configurações de filtro"
clique em "Salvar"
escolha "Manter formato atual"
O delimitador de campo deve ser uma vírgula:,
O delimitador de texto deve ter aspas: "
marque a caixa "Citar todas as células de texto"
Clique OK"
Isso funcionou para mim!