Converter XLSX para SQL

Aqui você converte XLSX para SQL de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído SQL funciona de um jeito diferente de XLSX. Não é a degradação gradual de um codec com perda: o que SQL consegue expressar é reproduzido fielmente, e o que não tem equivalente ali não sobrevive de jeito nenhum.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Só a primeira planilha é lida, e dela só os valores. Fórmulas, formatação, largura das colunas e todas as planilhas seguintes ficam de fora.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

O que você recebe são linhas, não um schema

A saída é um arquivo de comandos INSERT, um por linha da planilha, cada um nomeando a tabela e listando as colunas do cabeçalho. Não há CREATE TABLE no topo, e isso é deliberado: uma planilha não tem tipos, tamanhos, chaves nem restrições.

Um palpite errado numa linha é um registro ruim. Um palpite errado num schema é um VARCHAR(50) que trunca endereços por dois anos. A premissa aqui é que você já desenhou a tabela — verdade para quase todo mundo que precisa desta conversão.

O nome do arquivo decide o nome da tabela

O nome do arquivo, sem a extensão, vira a tabela em todo comando. É sanitizado primeiro: qualquer coisa que não seja letra, dígito ou sublinhado vira sublinhado, e um nome começando com dígito recebe um prefixo.

O conselho prático segue direto disso. Renomeie o arquivo exatamente para a tabela em que você vai carregar antes de converter, e a saída roda como está. A mesma sanitização se aplica aos nomes de coluna do cabeçalho.

Como cada valor é escrito

Números são escritos sem formatação. Texto é envolvido em aspas simples com qualquer apóstrofo interno dobrado, a forma ANSI que todo motor grande entende — "O apóstrofo" vira 'O''apóstrofo'. Escape com barra invertida deliberadamente não é usado.

Uma célula vazia vira a palavra-chave NULL em vez de uma string vazia, quase sempre a leitura certa de um espaço em branco numa planilha.

TRUE e FALSE não são aceitos em todo lugar

Uma célula booleana é escrita como o literal TRUE ou FALSE. Postgres aceita isso diretamente, MySQL trata como sinônimos de 1 e 0, e SQLite aceita há anos. SQL Server não: seu tipo bit quer 1 e 0.

É um ajuste de dois segundos quando você sabe, e vinte minutos irritantes se você descobrir por um erro no comando quatrocentos. Se o destino é SQL Server, faça a substituição primeiro.

Colunas de data são onde esta carga costuma dar errado

Uma planilha guarda uma data como uma contagem de dias vestida com um formato de exibição, e a conversão escreve o valor em vez da aparência. 1º de janeiro de 2024 vira 45292.

Inserido numa coluna numérica isso entra quieto e errado; inserido numa coluna de data é rejeitado. Conserte na planilha convertendo a coluna para texto num formato sem ambiguidade, ou carregue numa coluna de preparação e converta dentro do banco.

Identificadores mantêm os zeros à esquerda

Um código guardado como texto na planilha é escrito como string entre aspas, então 007 chega como '007' e um CEP com zero à esquerda entra intacto numa coluna VARCHAR.

O teste útil para saber se uma coluna é um identificador é se somar dois de seus valores significaria algo. CEP, código de peça, telefone e CPF falham todos nesse teste — e todos pertencem numa coluna de texto no destino também.

A lista de colunas, e linhas que não batem todas

Todo comando nomeia suas colunas explicitamente em vez de depender da ordem da tabela, o que faz o arquivo sobreviver a uma tabela que ganhou uma coluna depois. O conjunto de colunas é a união dos campos encontrados em toda a planilha.

Essa verbosidade tem um custo: a lista de colunas se repete em cada linha, então o arquivo fica maior que o dado nele. Cinquenta mil linhas de seis colunas saíram em cerca de 5,7 MB de SQL contra 4,3 MB do .xlsx original.

Cinquenta mil comandos separados, e o que fazer com isso

Os comandos são emitidos um por linha sem transação ao redor. Rodado assim contra Postgres ou MySQL, isso é cinquenta mil idas e voltas ao banco e cinquenta mil commits implícitos.

Envolver o arquivo em BEGIN e COMMIT resolve os dois problemas de uma vez e custa duas linhas. Para cargas genuinamente grandes, a ferramenta melhor é o caminho de carga em massa — COPY no Postgres, LOAD DATA no MySQL.

Uma planilha, no seu navegador, sem nada enviado

A primeira planilha do arquivo é o que vira os comandos, porque uma sequência de INSERTs endereça uma tabela. Se a planilha que você quer não é a primeira, mova-a e converta de novo.

Tudo isso acontece localmente: a planilha é lida e os comandos são escritos na página, sem upload. Isso importa mais neste par do que na maioria, já que uma planilha a caminho de um banco de dados costuma ser registros de clientes ou transações.

Como converter XLSX para SQL

  1. Solte o seu arquivo XLSX nesta página, ou clique para escolher um.
  2. Escolha SQL como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo SQL pronto.

XLSX ou SQL: o que muda

XLSX comparado com SQL
XLSXSQL
Nome completoPasta de trabalho do ExcelInstruções INSERT de SQL
Extensão do arquivo.xlsx.sql
Tipo de mídiaapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/sql
Publicado pela primeira vez20071986
Publicado porMicrosoft
EspecificaçãoECMA-376ISO/IEC 9075
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorNenhum navegadorNenhum navegador
Considerado no lugarCSV, ODS, ParquetCSV, Parquet

Abrir o resultado

Os programas de sempre não se cruzam: XLSX abre em Microsoft Excel, LibreOffice Calc e Google Sheets, e SQL em PostgreSQL, MySQL e DBeaver, então quem receber o resultado precisa de algum do segundo grupo.

Para que serve cada formato

Os dois miram trabalhos diferentes: XLSX em a edição, SQL em mover dados entre programas e o arquivamento. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.

XLSX é o formato da Microsoft, publicado em 2007. Está descrito em ECMA-376, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.

SQL e de 1986, descrito em ISO/IEC 9075. PostgreSQL, MySQL e DBeaver leem o formato.

SQL foi publicado em 1986 e XLSX em 2007. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.

De XLSX para SQL: perguntas frequentes

Meu arquivo XLSX é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo. O motor deste par específico é SheetJS, um leitor e gravador de planilhas em JavaScript; seu navegador baixa isso uma vez e guarda.

Converter XLSX para SQL é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez. SheetJS é baixado para a sua máquina e roda lá, e por isso não há contador.

Perde qualidade ao converter XLSX para SQL?

XLSX e SQL descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a primeira planilha é lida, e dela só os valores. Fórmulas, formatação, largura das colunas e todas as planilhas seguintes ficam de fora.

Preciso instalar alguma coisa para abrir um arquivo SQL?

Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe SQL Insert Statements.

Mais sobre esses formatos