Automatisation: xls>>csv>>sql (LOAD ou INSERT)
Résolu
JANGO5
Messages postés
92
Date d'inscription
Statut
Membre
Dernière intervention
-
JANGO5 Messages postés 92 Date d'inscription Statut Membre Dernière intervention -
JANGO5 Messages postés 92 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je travaille sur Excel pour la configuration d'un base de données je convertis mes feuilles (tables) en csv et que j'injecte dans la base mysql en utiisant des LOAD DATA INFILE . donc j'ai déjà une macro qui me converti tous en csv .
J'aurais besoin d'une autre macro ou d'un code qui me génère le script sql adéquat pour chaque table (feuille) après le passage en csv .
Exemple pour une feuille (table) REGION après passage en csv (garde le même nom) que j'obtienne le script suivant :
LOAD DATA INFILE 'REGION.csv'
INTO TABLE REGION
FIELDS
TERMINATED BY ';'
ENCLOSED BY ''
LINES
STARTING BY ''
TERMINATED BY '\n'
IGNORE 1 LINES
(ID_REGION , LIBELLE )
ID_REGION et LIBELLE étant l'entête des colonnes de la table région
Remarque : le nom des tables (feuilles) est le même pour les tables de la base.
si vous avez une idée pour me permettre d'automatiser tous ça je suis preneur .
Merci et dsl pour le paragraphe .
cdlt.
je travaille sur Excel pour la configuration d'un base de données je convertis mes feuilles (tables) en csv et que j'injecte dans la base mysql en utiisant des LOAD DATA INFILE . donc j'ai déjà une macro qui me converti tous en csv .
J'aurais besoin d'une autre macro ou d'un code qui me génère le script sql adéquat pour chaque table (feuille) après le passage en csv .
Exemple pour une feuille (table) REGION après passage en csv (garde le même nom) que j'obtienne le script suivant :
LOAD DATA INFILE 'REGION.csv'
INTO TABLE REGION
FIELDS
TERMINATED BY ';'
ENCLOSED BY ''
LINES
STARTING BY ''
TERMINATED BY '\n'
IGNORE 1 LINES
(ID_REGION , LIBELLE )
ID_REGION et LIBELLE étant l'entête des colonnes de la table région
Remarque : le nom des tables (feuilles) est le même pour les tables de la base.
si vous avez une idée pour me permettre d'automatiser tous ça je suis preneur .
Merci et dsl pour le paragraphe .
cdlt.
A voir également:
- Automatisation: xls>>csv>>sql (LOAD ou INSERT)
- Logiciel automatisation mac - Guide
- Logiciel automatisation clic souris - Télécharger - Divers Utilitaires
- Choisir les applications qui se lancent au démarrage du Mac - Guide
- [Cleanmgr.exe] Automatisation nettoyage - Forum Windows
- Créer un script d’automatisation - Forum Windows 10
3 réponses
Bonjour,
Quant à moi, j'utilise volontiers une formule Excel pour me créer les commandes d'insertion:
Tableau Excel:
Cela produit les résultats suivants :
Nota:
- J'ai mis un champ de type date pourun exemple de conversion vers SQL
- si les zones de textes comprennent des apostrophes (ex: nom = d'Ormesson) effectuer un Rechercher/Remplacer... et remplacer ' par \' ou remplacer ' par '' (deux apostrophes pas le guillemet)
Copier/Coller... Insérer SQL dans phpMyAdmin par exemple
Copier/Coller... dans Bloc-notes, puis enregistrer dans un fichier texte : insert_table.sql
Quant à moi, j'utilise volontiers une formule Excel pour me créer les commandes d'insertion:
Tableau Excel:
| A | B | C | D | -+---------+-----------+------------+--------+ 1| nom | prenom | né(e) le | 2| DUPONT | Jean | 15/04/1951 |= formules ci-dessous 3| DUVAL | Iseut | 28/07/1981 |= formules ci-dessous D2: ="INSERT INTO table (nom,prenom,dnais) VALUES ('"&A2&"','"&B2&"','"&TEXTE(C2;"AAAA-MM-JJ")&"');" D3: ="INSERT INTO table (nom,prenom,dnais) VALUES ('"&A3&"','"&B3&"','"&TEXTE(C3;"AAAA-MM-JJ")&"');"
Cela produit les résultats suivants :
INSERT INTO table (nom,prenom,dnais) VALUES ('DUPONT','Jean','1951-04-15'); INSERT INTO table (nom,prenom,dnais) VALUES ('DUVAL','Yseut','1981-07-28');
Nota:
- J'ai mis un champ de type date pourun exemple de conversion vers SQL
- si les zones de textes comprennent des apostrophes (ex: nom = d'Ormesson) effectuer un Rechercher/Remplacer... et remplacer ' par \' ou remplacer ' par '' (deux apostrophes pas le guillemet)
Copier/Coller... Insérer SQL dans phpMyAdmin par exemple
Copier/Coller... dans Bloc-notes, puis enregistrer dans un fichier texte : insert_table.sql