Pular para o conteúdo

Converter Excel para MySQL

Solte seu arquivo Excel e receba um script para MySQL com comandos CREATE TABLE e INSERT. Cada coluna recebe um tipo, e cada correção é listada com sua linha e coluna.

Seu arquivo
xlsxclientes_2024.xlsxArquivo de exemplo, 7 kB
Seu banco de dados

4 linhas convertidas, 10 correções, nenhuma rejeitada

Mostrar
As primeiras linhas de clientes_2024.xlsx, com cada correção marcada
Linha
500127Peña Muñoz0123403/02/2024sí1.234,50
600128José Ángel0987015/02/2024noN/A
700129Zoë Ortíz4410029/02/2024sí-12,00
800130Ñuño Castañeda0670011/03/2024no980,75
-- Written by IntoSQL for MySQL.

SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;

CREATE TABLE clientes_2024 (
    no_cliente varchar(8) NOT NULL COMMENT 'Nº Cliente',
    nombre varchar(16) NOT NULL,
    c_p varchar(8) NOT NULL COMMENT 'C.P.',
    alta date NOT NULL,
    activo tinyint(1) NOT NULL,
    saldo decimal(6,2)
) DEFAULT CHARSET=utf8mb4;

INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
('00127', 'Peña Muñoz', '01234', '2024-02-03', TRUE, 1234.50),
('00128', 'José Ángel', '09870', '2024-02-15', FALSE, NULL),
('00129', 'Zoë Ortíz', '44100', '2024-02-29', TRUE, -12.00),
('00130', 'Ñuño Castañeda', '06700', '2024-03-11', FALSE, 980.75);

COMMIT;

Correções

  1. O cabeçalho está na linha 4; as linhas acima dele ficaram de fora.
  2. A linha 9 ("TOTAL") é um total, então ficou de fora.
  3. A coluna "Nº Cliente" passa a se chamar no_cliente para que o MySQL a leia sem aspas.
  4. A coluna "C.P." passa a se chamar c_p para que o MySQL a leia sem aspas.
  5. Zeros à esquerda mantidos em "Nº Cliente": 00127 continua 00127, salvo como texto.
  6. Zeros à esquerda mantidos em "C.P.": 01234 continua 01234, salvo como texto.
  7. 15/02/2024 prova que as datas em "Alta" começam pelo dia, então 03/02/2024 é lido como 2024‑02‑03.
  8. "Activo" contém palavras de sim e não (sí, no), salvas como booleano.
  9. Os números em "Saldo" usam vírgula decimal: 1.234,50 é lido como 1234.50.
  10. N/A em "Saldo" lidos como vazios (1 de 4 valores).

Seu arquivo é convertido neste computador e nunca é enviado.

Outros exemplos:

De Excel para MySQL, coluna por coluna

O exemplo acima, clientes_2024.xlsx, como o IntoSQL o escreve para MySQL: o que cada coluna contém no arquivo, o tipo que recebe e como seu primeiro valor fica no script.

No arquivoPrimeiro valorColunaTipo no MySQLNo script
Nº Cliente00127no_clientevarchar(8)'00127'
NombrePeña Muñoznombrevarchar(16)'Peña Muñoz'
C.P.01234c_pvarchar(8)'01234'
Alta03/02/2024altadate'2024-02-03'
Activosíactivotinyint(1)TRUE
Saldo1.234,50saldodecimal(6,2)1234.50

Carregue o script no MySQL

O download é um arquivo .sql simples. Execute-o com as ferramentas do próprio MySQL.

Pelo terminal

mysql --default-character-set=utf8mb4 mydb < clientes_2024.mysql.sql

O próprio script define utf8mb4; a flag faz o cliente enviá-lo do mesmo jeito, então os acentos chegam intactos.

Por uma ferramenta de banco de dados

No MySQL Workbench, escolha File, Run SQL Script e selecione o arquivo.

Sem scriptPro

O IntoSQL Pro carrega o arquivo direto no MySQL pelo app para desktop ou pela linha de comando, sem escrever um script.

intosql load clientes_2024.xlsx --into mysql://user@localhost/mydb

O que saber sobre arquivos Excel e MySQL

O que o IntoSQL lê em arquivos Excel

  • A linha do cabeçalho é encontrada mesmo com títulos ou notas acima dela, e uma linha de totais no final fica de fora.
  • Datas guardadas como números de série do Excel viram datas de verdade, tanto no sistema de datas 1900 quanto no 1904.
  • Códigos com zeros à esquerda, como 00127, continuam como texto. Quando uma pasta de trabalho tem várias planilhas, você escolhe a planilha.

O que saber sobre MySQL

  • Valores de sim e não viram tinyint(1). Texto de até 255 caracteres é varchar; texto mais longo é text, mediumtext ou longtext conforme o tamanho.
  • O script usa utf8mb4 e define o modo SQL, então acentos, emoji, barras invertidas e quebras de linha são carregados como foram escritos.
  • O datetime do MySQL não guarda fuso horário.

Como cada tipo de valor é armazenado no MySQL

ValorMySQL
Sim e nãotinyint(1)
Números inteirosint
Números inteiros grandesbigint
Decimaisdecimal(p,s)double
Números de ponto flutuantedouble
Datasdate
Horáriostime(6)time
Datas com horadatetime(6)datetime
Datas com hora e fusodatetime(6)datetime
Textovarchar(n)textmediumtextlongtext

Perguntas sobre Excel para MySQL

Não encontrou a resposta? Escreva para nós pela página de contato e uma pessoa responde. Página de contato

Como converto Excel para MySQL?

Solte seu arquivo no conversor no topo desta página. Ele encontra o cabeçalho, lê cada valor e escreve o script para MySQL, listando cada correção feita. Baixe o script e execute-o com the mysql client.

Qual planilha da pasta de trabalho é convertida?

A primeira planilha visível. Quando a pasta de trabalho tem mais de uma, aparece a opção Planilha para você escolher outra.

Quais tipos do MySQL ele usa?

Valores sim e não viram tinyint(1), números inteiros int, decimais decimal(p,s), datas date, datas com hora datetime(6) e texto varchar(n). Os tamanhos vêm do valor mais longo de cada coluna.

Ele mantém os zeros à esquerda no MySQL?

Sim. Um código como 00127 continua como texto, então o MySQL o guarda como varchar(8) e o script o escreve como '00127'.

Ele carrega os dados no MySQL sem um script?

Sim, com o IntoSQL Pro. O app para desktop e a linha de comando se conectam ao MySQL e carregam as linhas direto, criando a tabela antes.

Qual o tamanho máximo do arquivo Excel?

No navegador, a pasta de trabalho é lida inteira, então o limite é a memória que o navegador dá a esta página. O app para desktop e a linha de comando aceitam pastas de trabalho de qualquer tamanho; em um notebook com Apple M4, a linha de comando converte uma pasta de trabalho de 117 MB com um milhão de linhas em cerca de um segundo.