Astuce : insérer un fichier excel dans une base MySQL
Il est parfois plus pratique de commencer sa base sous Excel et de vouloir ensuite l’importer dans MySQL. Voici quelques trucs et astuces que j’ai découverts au et à mesure de mes expériences …
Une base MySQL peut récupérer le contenu d’une feuille excel. Il faut pour cela transformer notre tableau excel en un fichier texte (via le format *.CSV). Si votre fichier excel contient plusieurs feuilles, il faudra créer un fichier *.CSV par feuille.
Pour enregistrer une feuille excel en *.CSV, vous n’avez qu’à choisir ce format dans la liste des types de documents (fenêtre “Enregistrer sous”).
Quelques pécautions à prendre
Voici quelques petites vérifications à faire pour éviter de perdre trop de temps après avec votre base
- Assurez-vous que chaque enregistrement possède bien un n°ID dans votre fichier Excel (Colonne ID remplie).
Si vous souhaitez ajouter des enregistrements avec votre fichier, vous n’avez qu’ à décaler les n°ID afin qu’ils viennent se placer après les ID déjà entrés. - Contrôlez bien que tous les champs soient bien au format “Texte” et que les colonnes ne contiennent pas de fonction.
- Remplacez toutes les apostrophes par – \’ – (anti-slash+apostophe) et toutes les guillemets par – \” – (anti-slash+guillemet).
- Supprimez la ligne des intitulés.
Une fois votre fichier Excel enregistré en *.CSV, ouvrez-le dans le bloc-note pour voir comment il est configuré.
Généralement, les champs sont séparés par ; et les textes ne sont pas séparés par des guillemets.
Dans PhpMyAdmin
Ouvrez PhpMyAdmin et sélectionnez votre table. Bien entendu, vous devez retrouver la même structure (nombre de colonnes) dans votre table que dans votre fichier.
Selon votre version de PHPMyAdmin, vous trouverez la fonction “Insérer des données depuis un fichier texte” soit en page d’accueil, soit dans un onglet.
Un formulaire s’ouvre :
- 1°/ Emplacement du fichier texte : vous permet d’aller sélectionner votre fichier *.CSV
- 2°/ Remplacer les données : permet de remplacer les données de la table par celles du fichier uniquement quand la clé primaire est identique. Pour que cette option soit lancée, vous devez la cocher.
- 3°/ Champs terminés par : Préciser le signe qui sépare chaque champ dans le *.CVS. Généralement, il s’agit du ;
- 4°/ Champs entourés par : N’est utile que si les champs sont texte sont entourés de simple ou double guillements. Souvent, le *.CSV créé par Excel ne met rien. Il suffit donc de supprimer les guillemets et de laisser vide
- 5°/ caractère spécial : permet d’indiquer le signe qui indique qu’une apostrophe ou une guillemet appartient au texte.
- 6°/ Lignes terminées par : indique les règles qui délimitent les enregistrements ( le retour chariot est utilisé par défaut).
- 7°/ Nom des colonnes : permet de rentrer les noms de colonnes que l’on veut juste intégrer.
L’expérience m’a montré que souvent, vous pouviez rencontrer des problèmes si tous les champs de votre fichier Excel n’étaient pas remplis dans les règles de votre base. Exemple, sur un champ MySQL unique, vous ne pouvez insérer deux enregistrements non remplis dans cette colonne.
Il faut aussi que vous pensiez aux modifications que subit généralement votre enregistrement quand il passe via un formulaire PHP. Si vous avez insérer une fonction “htmlentities” par exemple, il va falloir penser à transformer tous les caractères spéciaux par leurs équivalents HTML.
Vos réactions
Laissez un commentaire