Au lieu d'écrire un script pour extraire des informations d'un fichier CSV, vous pouvez lier directement MYSQL et télécharger les informations en utilisant la syntaxe SQL suivante.
Pour importer un fichier Excel dans MySQL, il faut d'abord l'exporter sous forme de fichier CSV. Supprimez les en-têtes CSV du fichier CSV généré ainsi que les données vides qu'Excel a pu placer à la fin du fichier CSV.
Vous pouvez ensuite l'importer dans une table MySQL en exécutant :
load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)
comme lu sur : Importez un fichier CSV directement dans MySQL
EDITAR
Dans votre cas, vous devrez d'abord écrire un interprète pour trouver la première ligne et l'assigner comme nom de colonne.
EDIT-2
Extrait de la documentation MySQL sur LOAD DATA
syntaxe :
El IGNORE number LINES
peut être utilisée pour ignorer les lignes à la position début du fichier. Par exemple, vous pouvez utiliser IGNORE 1 LINES
à sauter sur une première ligne d'en-tête contenant les noms des colonnes :
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
Par conséquent, vous pouvez utiliser la déclaration suivante :
LOAD DATA LOCAL INFILE 'uniq.csv'
INTO TABLE tblUniq
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(uniqName, uniqCity, uniqComments)
3 votes
Et même la solution GUI ne prend pas les noms de colonnes à partir du csv... vous devez créer la table entière avant l'importation...
1 votes
La question a déjà une réponse ici stackoverflow.com/questions/3635166/
0 votes
La réponse acceptée à la question à laquelle vous faites référence utilisait une interface graphique. La réponse à laquelle vous faites référence a été fournie hier alors que cette question (réponse) date de 2012.
1 votes
Ou utiliser mysqlimport mentionné dans la question sur l'origine.
0 votes
Il s'agit d'un duplicata de stackoverflow.com/questions/3635166/ même si vous n'aimez pas l'interface graphique. Vous pouvez poster une prime pour demander une meilleure question. Dans ce cas, une réponse non basée sur l'interface graphique a été fournie environ 1 an après que vous ayez posé cette question de toute façon. Je n'ai plus de voix pour la journée, mais je reviendrai demain.