Como forçar o excel a citar todas as colunas de um ficheiro CSV?
O Excel só coloca citações em torno de certos campos, como forçar o excel a guardar um ficheiro CSV com citações em torno de cada coluna?
O Excel só coloca citações em torno de certos campos, como forçar o excel a guardar um ficheiro CSV com citações em torno de cada coluna?
Se você abrir o arquivo XLS no LibreOffice ou OpenOffice, então Save As….e escolher Text CSV, ele permite gerar um arquivo CSV que também inclui aspas como delimitadores. Por exemplo..: “Smith”, “Pete”, “Canada” “Jones”, “Mary”, “England”
Basta marcar a caixa “Quote all text cells”:
Para também citar campos numéricos, destaque o seu intervalo de células e altere a formatação das células para “text” antes de guardar.
Esta página também tem a solução que vem directamente da boca do cavalo: http://support.microsoft.com/kb/291296/en-us
Se o link se degradar, o tópico a pesquisar é:
“Procedimento para exportar um ficheiro de texto com delimitadores de vírgulas e aspas em Excel” e/ou “Q291296”
tl;dr: use a sua macro
Encontrei esta solução fácil:
"''"@"''"
(ver detalhes abaixo) A string que está a colar é "''"@"''"
que é double quote, single quote, single quote, double quote, @ symbol, double quote, single quote, single quote, double quote.
Editado para Excel 2010 a partir da informação encontrada aqui .
Realce as células que pretende adicionar as citações. Vá para Formatar -> Células -> Copiar/Colar o seguinte no campo Tipo: \”@\” Clique em “ok” Fique feliz por não ter feito tudo à mão.
From: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/
Isto foi o mais fácil para mim: Eu importei a folha de cálculo para o Access 2010 e exportei-a a partir daí como um ficheiro de texto delimitado. Deu-me as aspas à volta dos meus campos. Demora menos de um minuto para linhas de 42k agora que tenho os passos para baixo.
Encontrei outro trabalho que não envolve a Macro VBA, mas que requer o Notepad++ ou um editor de texto similar baseado em macros.
Exporte o seu ficheiro como texto tabelado, depois abra o ficheiro exportado dentro do Notepad++. Substitua todas as instâncias do caracter ‘tab’ pelo texto “,” (ou seja, literalmente aspas, vírgula, aspas duplas) e depois use outra macro para prefixar e sufixar cada linha de texto com um aspas duplas.
Um pouco hacky mas achei mais rápido do que pôr uma macro VBA a funcionar.
"''"@"''"
(ver detalhes abaixo) ' '
(aspas simples repetidas) por "
(aspas duplas) ;
Se utilizar o Notepad++ para adicionar citações ao início de cada linha, basta abrir o ficheiro csv exportado, colocar o cursor na 1ª linha, 1ª coluna, depois clicar no menu Editar/ Editor de colunas… , no campo ‘ texto a inserir’, introduzir “ , depois o início de cada linha terá uma citação, depois pode utilizar a expressão regular para pesquisar/substituir todos os separadores.
A exportação de cadeias de caracteres separadas por vírgula e citadas pode ser feita apenas com o Excel 2016 e o Notepad, utilizando uma cópia dos dados, uma fórmula, uma exportação, uma alteração das propriedades do ficheiro, uma substituição no Notepad, guardando o ficheiro exportado e a limpeza. Cada um é um passo simples. Em detalhe:
Copie as colunas a exportar para uma nova folha intermédia para preservar o original e como cópia de segurança, com a nova folha a ser apagada mais tarde para deixar a folha como estava.
Coloque caracteres que não ocorram de outra forma, diga “#” ou “;-)” em cada extremidade de uma cadeia 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) novamente sobre A…, utilizando o método ‘123’, de modo a não transportar a fórmula.
Exportar a folha como um ficheiro CSV, para colocar as vírgulas entre campos, incluindo números.
Alterar as propriedades file.csv para que possa ser aberto com o Bloco de Notas.
Utilizar o Bloco de Notas para substituir o(s) carácter(es) arbitrário(s) por “ ”. Embora pareça sensato usar “como carácter arbitrário, tem de ser colocado numa célula diferente, digamos ”$A$50", e depois o que aparece na exportação é “”. “ ”, aparentemente outro gatilho inconveniente.
No bloco de notas o ficheiro deve ser guardado, tornando-se um ficheiro *.txt a importar e o ficheiro intermédio *.csv apagado.
Com a limpeza da missão extra da folha de cálculo realizada.
Talvez as ferramentas de exportação Access possam um dia ser incorporadas no Excel. Uma abordagem mais genérica entre os programas que utilizam cortar e colar, seria ter as opções de colar, incluindo uma escolha de formas de interpretar a estrutura de saída e fornecer delimitadores.
Outra forma de importar o ficheiro, se tiver acesso aos EM (tenho ver 2007), é exportá-lo como ficheiro de texto. Depois mude o ficheiro .txt para .csv. Note que todos os campos de número não terão aspas duplas em torno dele, por isso se precisar de aspas duplas em torno dos números também, então enquanto no Access altere o campo de um campo de número para um campo de texto.
Para utilizadores do Windows
Note que esta não é a mesma citação de teclado que tem uma variedade de avanço e recuo.
Então se usar o CSV para carregar na tabela Mysql, corte e cole no parâmetro ENCLOSED, caso contrário vai-se perguntar porque recebe a mensagem #1083 - Field separator argument is not what is expected
Usei a abordagem abaixo para pegar três colunas em Excel e construir a string na quarta coluna.
=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""
A minha questão com a abordagem "''"@"''"
é que a segunda coluna dos meus dados era um número que a abordagem "''"@"''"
não fazia nada com os números. Por vezes a segunda coluna está em branco mas eu precisava de ter a certeza que estava representada no ficheiro de texto final.
Esta é a minha receita. Detesto ter de fazer isto, mas não tinha melhor maneira. No meu caso, não estou a receber citações em nenhum campo. Também precisei de usar codificação UTF-8 e ; em vez de tabulações, foi isto que acabei por fazer.
NOTE: devido à ilegibilidade de colocar aspas duplas, fechadas por aspas simples, etc., usei propositadamente “formatação de teclado” para indicar tanto as teclas como os caracteres literais e as cordas.
Eis como usar a aplicação OpenOffice para pegar numa folha de cálculo Excel e criar um ficheiro de texto (csv) com aspas à volta de cada campo de texto.
Abra o ficheiro Excel com o OpenOffice, depois siga estes passos:
File > Save As
Forneça um novo nome para o ficheiro que está prestes a criar
Para o tipo de ficheiro, escolha “Test CSV (. csv)”
active a caixa de verificação “Edit Filter Settings”
clique em “Save”
escolha “Keep current format”
O delimitador de campo deve ser uma vírgula:
O delimitador de texto deve ser uma vírgula: “
marque a caixa "Citar todas as células de texto”
clique em “OK”
Isto funcionou para mim!
Já me deparei com esta questão muitas vezes. Aqui está a solução mais simples que encontrei.
Access permite especificar o delimitador de exportação como uma vírgula e campos de texto qualificados com aspas. No assistente de exportação, pode especificar qualquer delimitador ou caracter em torno de strings que desejar.
Poderá ter de criar uma consulta Access para organizar os campos numa determinada ordem ou ocultar o campo auto-ID adicionado pelo Access.
Também… uma vez exportado para um CSV, NÃO o abra novamente no Excel. Se quiser ver os resultados, abra-o no bloco de notas. O Excel tem uma tendência para mexer com os dados de um csv…. Acho que foi preenchido com zeros à esquerda, se bem me lembro.