Aller au contenu

Convertir Excel en MySQL

Déposez votre fichier Excel pour obtenir un script MySQL avec des instructions CREATE TABLE et INSERT. Chaque colonne reçoit un type, et chaque correction est listée avec sa ligne et sa colonne.

Votre fichier
xlsxclientes_2024.xlsxFichier d'exemple, 7 ko
Votre base de données

4 lignes converties, 10 corrections, aucune rejetée

Afficher
Les premières lignes de clientes_2024.xlsx, avec chaque correction signalée
Ligne
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;

Corrections

  1. L'en-tête est à la ligne 4 ; les lignes au-dessus ont été écartées.
  2. La ligne 9 ("TOTAL") est un total, elle a donc été écartée.
  3. La colonne "Nº Cliente" s'appelle désormais no_cliente pour que MySQL la lise sans guillemets.
  4. La colonne "C.P." s'appelle désormais c_p pour que MySQL la lise sans guillemets.
  5. Zéros initiaux conservés dans "Nº Cliente" : 00127 reste 00127, enregistré en texte.
  6. Zéros initiaux conservés dans "C.P." : 01234 reste 01234, enregistré en texte.
  7. 15/02/2024 prouve que les dates de "Alta" commencent par le jour, donc 03/02/2024 est lu comme 2024‑02‑03.
  8. "Activo" contient des mots oui et non (sí, no), enregistrés en booléen.
  9. Les nombres de "Saldo" utilisent une virgule décimale : 1.234,50 est lu comme 1234.50.
  10. N/A dans "Saldo" lus comme vides (1 sur 4 valeurs).

Votre fichier est converti sur cet ordinateur et n'est jamais envoyé.

Autres exemples :

De Excel à MySQL, colonne par colonne

L'exemple ci-dessus, clientes_2024.xlsx, tel qu'IntoSQL l'écrit pour MySQL : ce que contient chaque colonne du fichier, le type qu'elle reçoit et comment sa première valeur apparaît dans le script.

Dans le fichierPremière valeurColonneType MySQLDans le 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

Charger le script dans MySQL

Le téléchargement est un simple fichier .sql. Exécutez-le avec les outils de MySQL.

Depuis un terminal

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

Le script définit lui-même utf8mb4 ; l'option fait envoyer le client de la même façon, donc les accents arrivent intacts.

Depuis un outil de base de données

Dans MySQL Workbench, choisissez File, Run SQL Script, puis le fichier.

Sans scriptPro

IntoSQL Pro charge le fichier directement dans MySQL depuis l'application de bureau ou la ligne de commande, sans écrire de script.

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

Bon à savoir sur les fichiers Excel et MySQL

Ce qu'IntoSQL lit dans les fichiers Excel

  • La ligne d'en-tête est trouvée même quand des titres ou des notes se trouvent au-dessus, et une ligne de totaux à la fin est écartée.
  • Les dates stockées comme numéros de série Excel deviennent de vraies dates, dans le système de dates 1900 comme dans le 1904.
  • Les codes avec des zéros en tête, comme 00127, restent du texte. Quand un classeur a plusieurs feuilles, vous choisissez la feuille.

Bon à savoir sur MySQL

  • Les valeurs oui et non deviennent tinyint(1). Le texte jusqu'à 255 caractères est en varchar ; un texte plus long est en text, mediumtext ou longtext selon sa taille.
  • Le script utilise utf8mb4 et définit le mode SQL, donc les accents, emoji, barres obliques inverses et sauts de ligne sont chargés tels qu'écrits.
  • Le datetime de MySQL ne stocke pas de fuseau horaire.

Comment chaque type de valeur est stocké dans MySQL

ValeurMySQL
Oui et nontinyint(1)
Nombres entiersint
Grands nombres entiersbigint
Décimauxdecimal(p,s)double
Nombres à virgule flottantedouble
Datesdate
Heurestime(6)time
Dates avec heuredatetime(6)datetime
Dates avec heure et décalagedatetime(6)datetime
Textevarchar(n)textmediumtextlongtext

Questions sur Excel vers MySQL

Pas de réponse ici ? Écrivez-nous depuis la page de contact, une personne vous répond. Page de contact

Comment convertir Excel en MySQL ?

Déposez votre fichier sur le convertisseur en haut de cette page. Il trouve l'en-tête, lit chaque valeur et écrit le script MySQL, en listant chaque correction. Téléchargez le script et exécutez-le avec the mysql client.

Quelle feuille du classeur est convertie ?

La première feuille visible. Quand un classeur en a plusieurs, une option Feuille apparaît pour en choisir une autre.

Quels types MySQL utilise-t-il ?

Les valeurs oui et non deviennent tinyint(1), les nombres entiers int, les décimaux decimal(p,s), les dates date, les dates avec heure datetime(6) et le texte varchar(n). Les tailles viennent de la valeur la plus longue de chaque colonne.

Garde-t-il les zéros en tête dans MySQL ?

Oui. Un code comme 00127 reste du texte, donc MySQL le stocke en varchar(8) et le script l'écrit '00127'.

Peut-il charger les données dans MySQL sans script ?

Oui, avec IntoSQL Pro. L'application de bureau et la ligne de commande se connectent à MySQL et chargent les lignes directement, en créant d'abord la table.

Quelle taille peut avoir le fichier Excel ?

Dans le navigateur, le classeur est lu en entier, donc la limite est la mémoire que le navigateur accorde à cette page. L'application de bureau et la ligne de commande acceptent des classeurs de toute taille ; sur un portable Apple M4, la ligne de commande convertit un classeur de 117 Mo d'un million de lignes en environ une seconde.