Exporter feuille de calcul et importer en tant que table dans mysql

0

Quel est le moyen le plus simple d’exporter une table à partir de MS-Excel ou d’OpenOffice calc et de l’importer dans une base de données mysql, où:

  1. La table sera importée sous forme de table dans Mysql
  2. Les en-têtes de la table seront les champs de la base de données MySQL
  3. Il y aura une analyse intelligente du type de données à l'intérieur des cellules, par exemple un champ de texte, un entier ou une valeur à virgule flottante.
Roalt
la source

Réponses:

5

Un des outils que j'ai toujours avec moi est 'Pentaho Kettle', qui est un fantastique ETL open source multiplateforme. Vous pouvez trouver l'édition "gratuite" sur http://kettle.pentaho.com/

Une fois que vous avez téléchargé et installé le logiciel, procédez comme suit:

  1. Lancer Pentaho Kettle
  2. (Typiquement) cliquez sur 'No Repository'
  3. Créer une nouvelle transformation.
  4. Sur le côté gauche, vous verrez plusieurs "blocs". Dans ce cas, faites glisser un bloc "Entrée Excel" de la catégorie "Entrée" dans votre fichier de transformation.
  5. Double-cliquez sur le bloc que vous venez de faire glisser. Les prochaines étapes se réfèrent à ce bloc
    • Cliquez sur 'Parcourir' et sélectionnez le fichier Excel que vous souhaitez importer.
    • Cliquez sur 'Ajouter' (situé à gauche du bouton Parcourir). Vous devriez voir le fichier listé dans la liste 'Selected Files' sous
    • Maintenant, allez dans l'onglet '! Feuilles' (devrait être le deuxième onglet) et sélectionnez la feuille de calcul avec les données que vous souhaitez importer dans votre base de données
    • Enfin, allez dans l'onglet "! Fields" (devrait être le dernier à droite), cliquez sur le bouton "Obtenir les champs de la ligne d'en-tête ..." et modifiez les différents types de données en conséquence
    • Cliquez sur le bouton "Aperçu des lignes" pour vous assurer que tout va bien.
  6. Déplaçons maintenant ces données vers votre base de données SQL. Pour simplifier, je vais décrire comment créer une nouvelle table dans la base de données. Notez toutefois que Kettle fournit des blocs pour la gestion des mises à jour et des tâches d'insertion / mise à jour.
  7. Une fois encore, faites glisser un bloc du côté gauche. Cette fois, allez dans la section "Sortie" et sélectionnez "Sortie de la table".
  8. Connectez les deux blocs en maintenant la touche 'Shift' enfoncée et en faisant glisser le pointeur de la souris du bloc Excel au bloc Table Output. Les étapes suivantes concernent le bloc Table Output.
    • Premièrement, nous devons établir une connexion à la base de données. Pour ce faire, cliquez sur le bouton "Nouveau ..." à côté de la liste déroulante "Connexion".
    • Dans la liste "Type de connexion", sélectionnez "MySQL" (comme vous pouvez le constater, Kettle vous permet de vous connecter à un grand nombre de bases de données différentes). Remplissez tous les champs appropriés et n'oubliez pas de cliquer sur 'Test' pour vous assurer que la communication fonctionne.
    • Entrez le nom de la table
    • Allez dans l'onglet "Champs de la base de données" et sélectionnez "Entrer le mappage des champs". A partir de là, assurez-vous de mapper toutes les colonnes Excel du flux sur les champs MySQL appropriés et cliquez sur 'OK' (si les noms dans Excel correspondent à votre tableau, vous pouvez simplement cliquer sur 'Deviner' pour vous rapprocher).
  9. Enfin, sauvegardez votre transformation et exécutez-la en sélectionnant le menu 'Transformation> Exécuter'. Si tout se passe bien, vous devriez voir un message «Transformation terminée» dans la boîte d'exécution sous l'onglet «Journalisation».

Bonne chance!

Edgar
la source
1
Wow, l'outil semblait compliqué à installer et à utiliser, mais au final (grâce à votre description), j'ai réussi à le faire fonctionner! Remarque un côté: à l’étape de la sortie de la table, je devais choisir l’onglet "Champs de la base de données", appuyer sur "Obtenir les champs", puis choisir "SQL", puis "exécuter". C'était le seul moyen d'obtenir la structure automatiquement traduite en une table de base de données. Sinon, le processus de transformation s'est plaint de l'absence de champs dans la table. Peut-être que vous pouvez améliorer votre réponse ci-dessus avec ce commentaire? (Je n'ai aucune possibilité d'édition)
Roalt
Bon point! J'ai oublié ça (c'est ce qui se passe lorsque vous répondez de mémoire;). En règle générale, je clique sur "Entrer le mappage des champs" et utilise l'assistant pour mapper mes colonnes Excel sur la table (si elles ont le même nom, cliquer sur "Devinez" peut vous faire gagner beaucoup de temps). Je vais modifier la réponse pour m'assurer qu'elle reflète vos commentaires.
Edgar
Compte tenu de toutes les fonctionnalités de ce programme, je vais devoir trouver plus de temps pour examiner les autres tâches que vous pouvez réaliser. Cela semble très puissant!
Roalt
0

Excel2MySQL vous permet d'importer des feuilles de calcul Excel directement sous forme de tableau dans MySQL. Pour importer un fichier OpenOffice Calc, enregistrez-le simplement au format xls, puis importez-le.

(Divulgation complète, je suis l'auteur d'Excel2MySQL).

Il répond à toutes vos exigences:

  1. Chaque feuille est importée sous forme de tableau dans MySQL. En fait, la table est créée automatiquement.
  2. Les en-têtes de la table peuvent être utilisés pour définir les champs de la table MySQL.
  3. Excel2MySQL FAIT une analyse intelligente du type de données de la colonne pour optimiser automatiquement les types de champ de la table (tinyint, smallint, mediumint, int, bigint, float, double, varchar, date, heure, date / heure)

Et plus:

  • Se connecte directement à votre serveur MySQL
  • Inclut une interface de ligne de commande, si vous devez automatiser les importations.
  • Ajouter ou remplacer le tableau existant
  • Détecter et ajouter automatiquement de nouveaux champs dans la table existante
  • Exploser automatiquement les cellules fusionnées Excel (différent de Annuler la fusion).
  • Exclure éventuellement les lignes et les colonnes vides
  • Changer éventuellement des espaces en soulignés dans les noms de champs (fonction de commodité)

http://excel2mysql.net

capture d'écran

panofish
la source
1
Puisqu'il s'agit de votre produit, pourriez-vous fournir une description plus détaillée de la façon dont il résout le problème du PO? Naturellement, le créateur de l'opinion d'un produit selon laquelle il s'agit de la "solution la plus facile et la plus rapide disponible" n'est pas impartial.
John Bensin
désolé à ce sujet .. divulgation complète ... Je suis l'auteur de cet utilitaire, voir les modifications ci-dessus
panofish