Divisor de CSV

Divida um arquivo CSV grande em arquivos menores por número de linhas, número de arquivos ou tamanho. Cada parte mantém o cabeçalho, os campos entre aspas ficam inteiros e nada sai do seu navegador.

Os arquivos são processados localmente no navegador e nunca são enviados.

Os arquivos são processados localmente no navegador e nunca são enviados.

Como o divisor funciona

O arquivo é lido como um fluxo de bytes e cortado apenas nos limites de linha, de modo que cada arquivo de saída é um CSV válido por si só.

  1. 1

    Encontrar onde cada linha termina

    Os bytes são percorridos uma única vez. Uma quebra de linha encerra uma linha apenas quando está fora de aspas duplas, então uma quebra dentro de um campo entre aspas, como um endereço de várias linhas, nunca parte uma linha em duas.

  2. 2

    Cortar nos limites de linha

    Por linhas: a cada N linhas de dados começa um novo arquivo. Por número de arquivos: primeiro conta-se o total de linhas e depois elas são distribuídas da forma mais uniforme possível. Por tamanho: as linhas são adicionadas até que a próxima ultrapassaria o limite.

  3. 3

    Montar cada parte

    Cada arquivo de saída é composto pelos bytes do cabeçalho original mais um intervalo de bytes do arquivo original. Nada é decodificado, recodificado ou copiado, e é por isso que um arquivo de vários gigabytes é dividido em segundos sem esgotar a memória.

O que é preservado e o que não é suportado

  • As linhas nunca são partidas, mesmo quando uma única linha é maior que o limite de tamanho; essa linha vira um arquivo próprio.
  • Campos entre aspas seguem a RFC 4180: vírgulas, quebras de linha e aspas duplicadas ("") dentro das aspas são dados.
  • O delimitador (vírgula, ponto e vírgula, tabulação ou barra vertical) é detectado na primeira linha e pode ser alterado. Ele afeta a interpretação das aspas e a pré-visualização, não onde as linhas terminam.
  • A marca de ordem de bytes UTF-8 e os finais de linha CRLF do Windows são mantidos em cada parte, então o Excel abre as partes exatamente como o original.
  • Arquivos UTF-16 são rejeitados com uma mensagem; salve-os primeiro como UTF-8. No máximo 5.000 arquivos de saída são criados por execução.
  • O download em ZIP usa o método store (sem compressão) e é limitado a 4 GB no total; resultados maiores ainda podem ser baixados arquivo por arquivo.

Exemplos resolvidos

Os dois exemplos usam os arquivos de amostra embutidos, então você pode carregá-los e conferir cada número.

Dividir 12.000 linhas de pedidos em arquivos de 5.000 linhas

Carregue o exemplo "Pedidos (12.000 linhas)", mantenha "Linhas por arquivo", digite 5000 e deixe a chave de cabeçalho ligada.

  1. 1A primeira linha "order_id,order_date,…" é o cabeçalho. As 12.000 linhas restantes são linhas de dados.
  2. 212.000 ÷ 5.000 = 2 arquivos completos com 2.000 linhas de sobra, então são produzidos três arquivos.
  3. 3Os arquivos 1 e 2 contêm as linhas 1–5.000 e 5.001–10.000. O arquivo 3 contém as linhas 10.001–12.000.
  4. 4Cada arquivo começa com a mesma linha de cabeçalho, portanto tem 5.001, 5.001 e 2.001 linhas, respectivamente.

Resultado: orders-2026_part_01.csv (5.000 linhas), orders-2026_part_02.csv (5.000 linhas), orders-2026_part_03.csv (2.000 linhas). Juntos, contêm exatamente as 12.000 linhas originais.

Dividir 600 tickets de suporte com notas de várias linhas em 4 arquivos

Carregue o exemplo "Tickets com notas de várias linhas", escolha "Número de arquivos" e digite 4.

  1. 1A coluna notes contém texto entre aspas com vírgulas, aspas duplicadas e quebras de linha. A primeira passagem conta as linhas ignorando quebras dentro de aspas e encontra 600 linhas de dados.
  2. 2Linhas por arquivo = ceil(600 ÷ 4) = 150.
  3. 3As linhas são distribuídas em ordem: tickets T-0001–T-0150, T-0151–T-0300, T-0301–T-0450, T-0451–T-0600.
  4. 4Um ticket cuja nota ocupa três linhas ainda cai em um único arquivo, porque o corte só acontece no fim de uma linha fora de aspas.

Resultado: quatro arquivos com 150 tickets cada. Abra qualquer parte em uma planilha e as notas de várias linhas continuam sendo uma única célula.

Perguntas frequentes

Perguntas sobre como este divisor de CSV trata arquivos, cabeçalhos e codificações.

Meu CSV é enviado para um servidor?

Não. O arquivo é lido com a File API do navegador e dividido em intervalos de bytes no seu dispositivo. Não há envio, e fechar a aba descarta tudo.

Qual o tamanho máximo de CSV que posso dividir?

O arquivo é transmitido em fluxo, então o tamanho não afeta a memória; arquivos acima de 1 GB são divididos sem problema. O limite prático é o download em ZIP, limitado a 4 GB. Resultados maiores podem ser baixados um arquivo por vez.

Cada arquivo de saída mantém a linha de cabeçalho?

Sim. Quando "A primeira linha é o cabeçalho" está ligado, o cabeçalho é repetido no início de cada parte. Desligue se o seu arquivo não tiver cabeçalho; a primeira linha passa a ser tratada como dado.

O que acontece com campos entre aspas que contêm vírgulas ou quebras de linha?

Eles permanecem intactos. Uma quebra de linha dentro de aspas duplas é tratada como parte do campo, não como fim de linha, e aspas duplicadas ("") são reconhecidas como aspas escapadas.

Quais delimitadores são suportados?

Vírgula, ponto e vírgula, tabulação e barra vertical. O delimitador é detectado na primeira linha e você pode alterá-lo se a detecção estiver errada.

O Excel abre os arquivos divididos corretamente?

Sim. Se o arquivo original tiver uma marca de ordem de bytes UTF-8 ou finais de linha do Windows, cada parte os mantém, então o Excel lê as partes do mesmo jeito que leu o original.

Devo dividir por linhas ou por tamanho?

Divida por linhas quando o destino tem um limite de linhas, por exemplo as 1.048.576 linhas por planilha do Excel ou uma ferramenta de importação que aceita 10.000 linhas por vez. Divida por tamanho quando o destino tem um limite de upload em megabytes. Divida por número de arquivos quando quiser pedaços iguais para processamento em paralelo.

Como junto as partes de volta em um único arquivo?

Concatene-as e remova as linhas de cabeçalho repetidas. No macOS ou Linux: head -n 1 part_01.csv > all.csv; tail -n +2 -q part_*.csv >> all.csv. Em Python, pandas.concat sobre as partes faz o mesmo.