Mesclar arquivos CSV
Este mesclador combina vários arquivos CSV em um, alinhando as colunas pelo nome do cabeçalho em vez da posição: o cabeçalho de saída é a união de todas as colunas de cada arquivo, e as linhas preenchem o que têm, ficando em branco onde não têm. A análise e a escrita acontecem no seu navegador; os arquivos nunca são enviados.
Mesclar arquivos CSV: explicação
Duas exportações do mesmo tipo de registro quase nunca concordam nas colunas — uma tem nome e e-mail, a outra tem nome e empresa. Empilhá-los é como arquivos errados são criados: as linhas ficam sob qualquer cabeçalho que esteja acima delas, e uma coluna chamada e-mail silenciosamente coleta valores de empresa de outra pessoa. A solução é unir colunas por nome e remapear cada linha através do cabeçalho do próprio arquivo.
É isso que este mesclador faz. O cabeçalho de saída é a união ordenada — as colunas do primeiro arquivo na ordem delas, então cada nova coluna assim que algum arquivo a mostrar. Cada linha é escrita contra essa união, pegando valores das colunas que o próprio arquivo tem, deixando o resto em branco. A saída é RFC 4180: vírgulas, campos entre aspas apenas quando necessário, terminais de linha CRLF.
Múltiplos arquivos ficam locais. Anexe-os com o seletor de arquivos — a API de arquivos do navegador os lê para a memória nesta aba — ou cole-os separados por uma linha contendo apenas ---. Nada é enviado para lugar nenhum; não há etapa de envio porque não existe.
As regras de aspas, CRLF e escape que a saída mesclada segue são explicadas em termos simples no site Guia RFC 4180 — vale cinco minutos antes de você montar um pipeline com CSV.
Uma vez que os arquivos viram uma única tabela, o passo seguinte usual são registros que um script possa consumir, e o Conversor de CSV para JSON torna isso um acompanhamento de um clique.
União por nome, não por posição
A distinção parece acadêmica até que salva um arquivo. Suponha que o arquivo um tem colunas nome, e-mail e o arquivo dois tem nome, empresa. O cabeçalho da união é nome, e-mail, empresa — as colunas do arquivo um primeiro, depois a nova coluna. A linha da Ada preenche o e-mail; a da Grace preenche a empresa; cada uma deixa a outra em branco. O exemplo abaixo mostra exatamente esse par.
Como o mapeamento passa pelo cabeçalho de cada arquivo, a ordem das colunas dentro de um arquivo é irrelevante: o arquivo dois poderia chegar como empresa, nome e seus valores ainda seriam posicionados corretamente — exatamente o que a empilhagem posicional erra, e por que um mesclador que assume cabeçalhos idênticos é uma armadilha.
Arquivos irregulares, BOMs e outras peculiaridades do mundo real
Exportações reais são irregulares, e o mesclador lida com os casos comuns em vez de rejeitá-los:
- Um BOM UTF-8 no início de um arquivo é removido — caso contrário, uma exportação do Excel cresce uma primeira coluna invisível que ninguém consegue combinar.
- Linhas em branco são puladas, e um arquivo vazio é ignorado, não sendo fatal.
- Linhas com células finais ausentes viram brancos — as bordas direitas irregulares são normalizadas, não são erros.
- Falhas de análise são reportadas por arquivo e por linha — arquivo 2: campo entre aspas não terminado, linha 4 — para que o arquivo problemático se identifique.
- Um cabeçalho que repete um nome dentro de um arquivo é lido apenas na primeira posição; dessubstitua tais cabeçalhos se a segunda cópia carregar dados.
Como a saída se parece — e o que ela se recusa a fazer
A saída é um documento CSV: uma única linha de cabeçalho, então todas as linhas de cada arquivo em ordem. Os terminais de linha são CRLF com um CRLF final, por RFC 4180, e os campos são colocados entre aspas apenas quando necessário: uma vírgula, uma aspa (duplicada, como o padrão exige) ou uma quebra de linha dentro, ou espaços em branco no início ou no fim que uma planilha removeria.
Os valores passam como texto — um número de cliente 007 fica 007 — e nada é deduplicado ou reordenado. Duas linhas idênticas dentro são duas linhas fora: colapsá-las requer decidir o que faz duas linhas serem iguais, e essa chamada é sua, não da ferramenta.
Perguntas frequentes
Os arquivos CSV que eu anexo são enviados?
Não. Arquivos anexados são lidos com a API de arquivos do navegador em strings dentro desta aba, mesclados lá, escritos de volta — nada sai do dispositivo. A página é servida com connect-src 'self', então um fetch para outra origem é recusado pelo próprio navegador, e o painel de Rede não mostra tráfego enquanto uma mesclagem roda. Exportações de folha de pagamento ficando locais é o ponto.
E se meus arquivos tiverem colunas diferentes, ou as mesmas columas em ordem diferente?
Esse é o caso para o qual a ferramenta existe. Colunas são unidas por nome, cada linha é remapeada através do cabeçalho do próprio arquivo, então a ordem das colunas dentro de qualquer arquivo é irrelevante. Linhas simplesmente deixam em branco as colunas que o arquivo nunca teve.
Linhas duplicadas são removidas?
Não. Mesclar é alinhamento estrutural; deduplicação é uma decisão separada sobre identidade — todas as colunas, uma chave, insensível a maiúsculas e minúsculas? — e adivinhar errado apaga dados reais. Linhas idênticas passam intactas; aplique sua própria regra depois se precisar.
Quais dialetos CSV o analisador aceita?
Delimitado por vírgula RFC 4180: campos entre aspas contendo vírgulas, aspas e quebras de linha, aspas duplicadas, e terminais de entrada CRLF ou LF. Exportações delimitadas por ponto e vírgula — o padrão do Excel europeu — são analisadas como uma única coluna larga, então salve-as com vírgulas primeiro. A saída é sempre delimitada por vírgula com terminais CRLF.
Linhas irregulares são tratadas como?
Uma linha mais curta que o cabeçalho do arquivo contribui com brancos para as colunas faltantes; uma linha mais longa tem sobras sem nome — células sem nome de coluna — que são ignoradas. Nomes de cabeçalho repetidos dentro de um arquivo são lidos na primeira ocorrência. Tratamento silencioso é reservado para esses; sintaxe malformada gera um erro por arquivo, por linha.
Há um limite de tamanho para os arquivos?
O limite prático é a memória da aba do navegador. Cada arquivo é analisado pelo motor CSV da thread principal do site, que recusa entradas acima de 8 MB com uma mensagem clara em vez de congelar a página — o mesmo limite documentado que as outras ferramentas CSV do site aplicam. Para exportações típicas, isso é dezenas de milhares de linhas por arquivo.
Quais ferramentas relacionadas devo usar a seguir?
- Converter CSV em JSONLê a exportação da planilha, aspas e tudoAbrir
- Converter JSON em CSVTransforma registros em planilha, mesmo aninhadosAbrir
- CSV para YAMLConversor que roda no seu navegadorAbrir
- YAML para CSVConversor que roda no seu navegadorAbrir
- Regras de CSV da RFC 4180Guia em linguagem simplesAbrir
- Formatar JSONIndenta, ordena chaves e remove comentáriosAbrir