Guia · CSV → Markdown

De CSV para uma tabela Markdown

Nada dentro de um CSV declara as suas próprias regras. Qual caractere separa as colunas, como as aspas se comportam, se a primeira linha é cabeçalho: tudo é convenção, e circulam várias. Uma tabela que sai errada é quase sempre um arquivo lido com o conjunto errado.

Isto cobre como o delimitador é escolhido, o que as aspas fazem, e como deixar os números alinhados à direita.

Abrir o conversor

Qual caractere separa as colunas

Em arquivos reais aparecem quatro caracteres: vírgula, ponto e vírgula, tabulação, barra. Pontos e vírgulas mais do que se espera — onde 1,50 significa um e meio a vírgula já está tomada, então as planilhas recorrem ao ponto e vírgula.

A detecção é automática, e quando a resposta não é uma vírgula a saída diz qual caractere ela usou. Vale ler essa linha: um arquivo com algo incomum nas primeiras linhas, como uma linha de título acima do cabeçalho, pode ser lido errado, e é assim que você descobriria.

Se ela errou, fixe o delimitador à mão. Vírgula, ponto e vírgula, tabulação e barra podem ser escolhidos.

  1. 01Solte o arquivo, ou cole as linhas direto na caixa.
  2. 02Olhe a nota acima da saída para ver se ela detectou um delimitador que não é vírgula.
  3. 03Se a tabela saiu com uma coluna quando deveria ter seis, escolha você o delimitador.

Quando uma célula contém o próprio separador

Um campo envolvido em aspas duplas pode conter o delimitador, e aspas duplas dentro significam um caractere de aspas literal. Isso é RFC 4180 e é tratado direito: é a razão inteira de o arquivo não ser simplesmente partido nas vírgulas.

Quebras de linha também se escondem entre aspas, e isso bate de frente com o formato de saída: uma linha de tabela de barras tem que ocupar exatamente uma linha. Então uma quebra dentro de uma célula é reescrita como <br>, o que mantém as duas linhas de um endereço sem partir a linha em duas.

Barras verticais no texto de uma célula são escapadas como \|. Sem isso, uma barra em um campo de observações transforma uma linha de cinco colunas em uma de seis.

CSV
name,note
Bolt,"M6 | 40mm
steel"
Markdown
| name | note |
| --- | --- |
| Bolt | M6 \| 40mm<br>steel |

A linha de alinhamento

A linha de traços embaixo do cabeçalho pode levar dois-pontos, e eles fixam como uma coluna se alinha quando a tabela é renderizada. Esquerda, centro, direita — direita é a que você quer para números.

Uma coisa a saber: a configuração vale para a tabela toda, não por coluna. Não há controle por coluna aqui, porque um CSV não carrega informação sobre quais colunas têm números, e adivinhar pelos valores erraria com CEPs, telefones e strings de versão.

Então para uma tabela quase toda de números, escolha direita e corrija à mão a única coluna de texto. Para qualquer coisa mista, deixe no padrão: uma linha lisa de traços, que todos os renderizadores tratam como esquerda.

Alinhamento: direita
Item,Cost
Bolt,0.40
Markdown
| Item | Cost |
| ---: | ---: |
| Bolt | 0.40 |

Linhas de cabeçalho, e arquivos que não têm nenhuma

A primeira linha vira o cabeçalho por padrão. Desligue isso e todas as linhas serão linhas de corpo — mas a linha de cabeçalho em si não desaparece, ela sai vazia.

Isso parece estranho e não é um bug: uma tabela de barras do Markdown é obrigada a ter uma linha de cabeçalho. Uma tabela sem ela não seria analisada como tabela nenhuma, então um cabeçalho vazio é o único jeito de expressar «sem cabeçalho» e ainda produzir algo que renderize.

Preencha depois com nomes de coluna, ou deixe: uma linha de cabeçalho vazia renderiza como uma faixa fina em branco acima dos dados.

Linha de cabeçalho: nenhuma
Bolt,12
Nut,12
Markdown
|  |  |
| --- | --- |
| Bolt | 12 |
| Nut | 12 |

Linhas irregulares e arquivos malformados

Linhas com contagens de colunas diferentes são preenchidas até a mais larga, e a saída diz quais contagens ela viu. Essa mensagem costuma ser sinal de que algo quebrou mais acima: uma linha com três células em um arquivo de seis colunas normalmente quer dizer que uma aspa sem escape engoliu um delimitador.

Linhas vazias são descartadas, inclusive as linhas que não são nada além de delimitadores, que é o que um bloco de «,,,» no fim geralmente é.

Os valores nunca são convertidos de tipo. 007 continua 007 e 1-2 não vira uma data. O Excel faz isso com você; isto não, porque mudar o valor é mudar os seus dados.

Uma marca de ordem de bytes no começo do arquivo é removida, para o cabeçalho da primeira coluna não sair com um caractere invisível grudado.

O que «grande» significa aqui

Dois tetos. 25 MB de texto, e 100 000 células — isso é linhas × colunas, então um arquivo de seis colunas chega a umas 16 000 linhas e um de cem colunas para perto de mil.

O limite de células é o que você vai alcançar, e é questão de renderização mais que de análise. A pré-visualização constrói nós DOM para cada célula, e algumas centenas de milhares travam a aba. Recusar é melhor que congelar.

Para algo realmente maior, parta por linhas e converta cada pedaço, repetindo a linha de cabeçalho em cada um.

Solte o CSV ou cole as linhas, troque o alinhamento se os números vão à direita, e copie a tabela. A análise acontece nesta aba, então uma exportação de clientes fica no seu disco.

CSV → MD