> For the complete documentation index, see [llms.txt](https://guias.mosaico.gov.pt/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guias.mosaico.gov.pt/guias-praticos/como-disponibilizar-e-reutilizar-dados-abertos/recomendacoes-para-ficheiros-csv.md).

# Recomendações para ficheiros CSV

De seguida são descritas todas as recomendações a ter em conta ao formatar ficheiros [CSV](https://mosaico.gov.pt/glossario#glossario-csv). Para recomendações sobre outros formatos, como [XML](https://mosaico.gov.pt/glossario#glossario-xml-extensible-markup-language), RDF ou JSON, consultar o guia [Data Quality Guidelines](https://op.europa.eu/en/publication-detail/-/publication/023ce8e4-50c8-11ec-91ac-01aa75ed71a1).

## Usar o ponto e vírgula como delimitador

Usar o ponto e vírgula para separar cada valor em vez da vírgula, uma vez que os pontos e vírgula são utilizados com menor frequência em valores. O delimitador deve ficar sempre entre dois valores e não podem existir espaços ou tabulações antes ou depois.

De seguida é ilustrado um exemplo incorreto, onde duas linhas têm uma tabulação a seguir ao delimitador e onde todas as células têm o último valor seguido por um ponto e vírgula, e um exemplo correto, onde não existe qualquer espaço ou tabulação antes ou depois do delimitador e o último valor de cada linha não é seguido por um delimitador.

<figure><img src="/files/VDnEV1nMbVgDFkR0rNyo" alt=""><figcaption><p>Exemplo incorreto, à esquerda, e exemplo correto, à direita, da utilização do ponto e vírgula como delimitador</p></figcaption></figure>

## Disponibilizar uma tabela por ficheiro

Cada ficheiro CSV só pode conter uma tabela. Se a tabela a publicar for composta por várias folhas, deve ser criado um ficheiro CSV para cada uma, dado que uma organização diferente quebraria a estrutura da tabela e iria dificultar a sua interpretação por meios automáticos.

De seguida é ilustrado um exemplo incorreto onde foram incluídas duas tabelas distintas no mesmo ficheiro, e um exemplo correto, onde foram disponibilizados dois ficheiros, cada um com uma tabela com uma estrutura distinta.

<figure><img src="/files/UCjhrtZe7oN4shuno5kK" alt=""><figcaption><p>Exemplo incorreto, à esquerda, e exemplo correto, à direita, de disponibilização de apenas uma tabela por ficheiro</p></figcaption></figure>

## Evitar inserir espaços em branco e informação adicional no ficheiro

Garantir que o ficheiro contém apenas dados que pertencem à tabela em si, como os cabeçalhos das colunas e os respetivos valores, uma vez que a inclusão de informação adicional dificulta o processamento porque os espaços em branco e títulos das tabelas também são interpretados de modo automático.

De seguida é ilustrado um exemplo incorreto de um ficheiro que contém o título de tabela e duas linhas vazias (vermelho), quando visualizado no Microsoft Excel.

<figure><img src="/files/H7jjRRQMsthsyCdVcw6B" alt=""><figcaption><p>Exemplo incorreto, onde foram inseridas células em branco e informação adicional, quando visualizado no Microsoft Excel</p></figcaption></figure>

Na figura que se segue é ilustrado como o mesmo ficheiro foi lido por um editor de texto, em que a linha do título da tabela e as linhas vazias (vermelho) foram interpretadas.

<figure><img src="/files/LvRAr8cvVh7FTsQhlQcg" alt=""><figcaption><p>Exemplo incorreto, onde foram inseridas células em branco e informação adicional, quando interpretado por um editor de texto</p></figcaption></figure>

O exemplo incorreto que se segue ilustra um ficheiro com informação e formatação adicionais, identificadas com caixas de texto, que irão dificultar o processamento automático dos dados.

<figure><img src="/files/QVnTLdUUaqloiV6XPUpf" alt=""><figcaption><p>Exemplo incorreto de um ficheiro com informação e formatação adicionais, identificadas com caixas de texto</p></figcaption></figure>

No exemplo correto que se segue é ilustrada uma versão do ficheiro com os mesmos dados, onde todas as informações adicionais foram removidas e o título da tabela foi incluído no nome do ficheiro.

<figure><img src="/files/mNPxd6nSaQXJihH6ml5s" alt=""><figcaption><p>Exemplo correto de um ficheiro sem informação ou formatação adicionais</p></figcaption></figure>

<figure><img src="/files/cEBMirqDOLzOHaKL7Qzz" alt=""><figcaption><p>Exemplo correto de um ficheiro onde o título da tabela foi incluído no nome do ficheiro e retirado da tabela</p></figcaption></figure>

## Inserir cabeçalhos nas colunas

Incluir sempre cabeçalhos das colunas na primeira linha do ficheiro. Os cabeçalhos devem ser, de preferênencia, autoexplicativos, mas caso não sejam, a sua explicação deve ser incluída nos [metadados](https://mosaico.gov.pt/glossario#glossario-metadados).

De seguida mostram-se dois exemplos, um incorreto, em que o ficheiro não tem cabeçalhos, e um exemplo correto, onde os cabeçalhos foram incluídos na primeira linha.

<figure><img src="/files/utLuhVpV5oW0SkeXfZIF" alt=""><figcaption><p>Exemplo incorreto, à esquerda, e exemplo correto, à direita, de inserção de cabeçalhos nas colunas</p></figcaption></figure>

O exemplo incorreto mostra um ficheiro [CSV](https://mosaico.gov.pt/glossario#glossario-csv) com um cabeçalho que não é autoexplicativo, em que nesse caso é necessário fornecer explicações adicionais nos metadados.

<figure><img src="/files/Yfk4uV5jgI52FjESLzHe" alt=""><figcaption><p>Exemplo incorreto, onde a linha do cabeçalho não é autoexplicativa</p></figcaption></figure>

## Todas as linhas devem ter o mesmo número de colunas

Garantir que todas as linhas têm o mesmo número de colunas e seguem a estrutura correta de um ficheiro CSV.

De seguida são mostrados dois exemplos, um incorreto, onde falta o cabeçalho da última coluna e duas linhas não têm valores na última coluna, e um exemplo correto, onde todas as linhas têm valores para todas as colunas.

<figure><img src="/files/Tke5nFQCVXPIJgvV7JHB" alt=""><figcaption><p>Exemplo incorreto, à esquerda, e exemplo correto, à direita, do número de colunas em cada linha</p></figcaption></figure>

## Indicar unidades de medida

Indicar as unidades de medida de uma forma fácil de processar, ao declará-as nas colunas correspondentes ou, caso a unidade varie entre linhas, usando uma coluna para especificar a unidade utilizada. Adicionalmente, a unidade de medida pode ser referenciada nos [metadados](https://mosaico.gov.pt/glossario#glossario-metadados) correspondentes do stat:dcat.

São ilustrados dois exemplos, um incorreto, onde a unidade de medida está incluída na célula que contém o valor, e um exemplo correto, onde existe uma coluna dedicada à unidade de medida utilizada em cada linha.

<figure><img src="/files/5T7a1NsfSuStOeU82ZqG" alt=""><figcaption><p>Exemplo incorreto, à esquerda, e exemplo correto, à direita, da indicação de unidades de medida</p></figcaption></figure>

No exemplo correto que se segue optou-se por especificar as unidades de medida ao utilizar a lista de vocabulário controlado disponibilizada pelo Serviço das Publicações da União Europeia.

<figure><img src="/files/X4NRZCQNAHHLymaI5w76" alt=""><figcaption><p>Exemplo correto da indicação de unidades de medida, recorrendo à lista de vocabulário controlado</p></figcaption></figure>
