|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
blman WRInaute accro

Inscrit le: 05 Sep 2003 Messages: 2747 Localisation: Nantes / Laval (France)
|
Posté le : Mer Mai 04, 2005 15:02 Sujet du message: [résolu] Export Excel -> MySql |
|
|
Salut les WRistes,
Je vous soumet un petit problème qui commence à m'énerver depuis ce matin. Voila, j'ai réalisé un extranet qui doit se charger de faire des stats sur des demandes de documentations passer sur 3 sites différents. Tout allait bien jusque ici puisque je récupérais automatiquement les données des 3 sites en XML pour les importer dans la base de données de l'extranet.
Et voila qu'on me demande d'importer toutes les demandes passées par couponning, téléphone et fax depuis 2002. J'ai donc tout récupérer sous Excel (plus de 25000 enregistrements en tout).
Je souhaite donc récupérer les données Excel pour les importer dans ma base de données :
1- J'ai pensé à enregistrer mon fichier en CSV pour analyser chaque ligne, faire un explode() sur les caractères de séparation et le tour était jouer : NON, ya plein de retour de ligne dans les formats des adresses donc pas trop envisageable à moins que je retouche tout le fichier à la main (faut pas rêver)
2- J'ai pensé à enregistrer mon fichier en XML : vu ce que ça donne, j'imagine même pas comment je vais pouvoir faire une moulinette pour l'intégrer dans ma base de données (trop naze l'export en XML d'Excel)
Connaissez-vous une autre méthode qui pourrait marcher ?
Savez-vous comment je pourrais enlever ces put**** de retour de ligne dans le fichier Excel ?
Une des pistes serait d'enregistrer mon fichier en SYLK, est-ce que quelqu'un a une adresse d'un script PHP qui pourrait lire du SYLK (je sais exporter une base vers SYLK mais pas l'inverse, snifff) ?
Dernière édition par blman le Mer Mai 04, 2005 16:54; édité 1 fois |
|
| |
|
 |
lesbonsplansdesophie WRInaute impliqué

Inscrit le: 01 Mar 2004 Messages: 443 Localisation: Paris
|
Posté le : Mer Mai 04, 2005 15:17 Sujet du message: [résolu] Export Excel -> MySql |
|
|
c'est quoi le format de ton fichier excel ?
si tu as un truc du style:
A1 B1 C1
nom prenom tel
dans excel, a la fin de toute les colonnes (ici en D1), tu fais
= A1 & ";" & B1 & ";" & C1 & "\n"
Cela aura pour effet de concatener tes colonnes avec un point virgule entre chaque, et un caractere d'echappement "\n" a la fin.
Tu recopies la formule sur toutes les lignes.
Ensuite tu copies la colonne obtenue dans une nouvelles feuille (fais copier / Edition > Collage Special... > Valeurs)
Enfin tu fais enregistrer sous > fichier texte tu dis oui a chaque message d'avertissement et normalement tu auras un fichier importable directement dans phpmyadmin (selectionne ta table puis 'inserer un fichier texte dans la table')
J'espere que ca marchera ? |
|
| |
|
 |
Gaëtan R. WRInaute impliqué

Inscrit le: 26 Avr 2004 Messages: 311 Localisation: Aux frontières du 44, 35 et 56
|
Posté le : Mer Mai 04, 2005 15:20 Sujet du message: [résolu] Export Excel -> MySql |
|
|
Essaie de voir du côté des macros excel pour ton problème de retour ligne. Ce site : http://www.excelabo.net/xl/caracteres.php  |
|
| |
|
 |
blman WRInaute accro

Inscrit le: 05 Sep 2003 Messages: 2747 Localisation: Nantes / Laval (France)
|
Posté le : Mer Mai 04, 2005 15:28 Sujet du message: [résolu] Export Excel -> MySql |
|
|
Sophie, ta solution revient en fait à enregistrer sous un fichier CSV avec des séparateurs ;
Le problème, c'est que j'ai des retours de lignes à l'intérieur même des colonnes. J'ai tout essayer pour les virer mais je n'y arrive pas.
Voila un exemple d'une ligne qui me fait chi** en CSV :
92;VRAI;03/06/2002;VRAI;VRAI;BON****;patri**;;"le Glaizil bat a2
39,rue *******";05000;Gap;France;049253*****;;*****@wanadoo.fr;Employé de commerce;35 - 44 ans;;non;- - -;;Amis;;Français;Internet;- - -;;FAUX;;;
Vous voyez, sur l'adresse, il y a un retour de ligne qui s'est insérer puisqu'à l'époque, le champ était un textarea. Aujourd'hui, j'ai mis 2 champs adresses de type text pour éviter ce phénomène (en plus je génère des étiquettes pour l'envoie des documentations, donc le textarea n'est plus du tout valable car souvent le texte débordais de l'étiquette : il a donc fallu que je limite la taille de chaque champs). |
|
| |
|
 |
aladdin WRInaute passionné

Inscrit le: 29 Avr 2005 Messages: 743
|
Posté le : Mer Mai 04, 2005 15:51 Sujet du message: [résolu] Export Excel -> MySql |
|
|
une petit recherche sur google :
http://www.iamnota.com/content/view/14/29/
c'est un convertisseur xls2xml ....
j'ai pas eu le courrage de le tester
tien moi au courant si ça marche  |
|
| |
|
 |
blman WRInaute accro

Inscrit le: 05 Sep 2003 Messages: 2747 Localisation: Nantes / Laval (France)
|
Posté le : Mer Mai 04, 2005 16:12 Sujet du message: [résolu] Export Excel -> MySql |
|
|
aladdin, les liens qu'ils ont mis sur la page ne fonctionne pas...
Gaëtan R., j'ai regardé ton lien, pas mal. J'espère que je vais trouvé quelquechose avec les macros (que je ne connais pas, encore du triturage de cerveau en vue) |
|
| |
|
 |
shrom WRInaute passionné

Inscrit le: 05 Juil 2004 Messages: 866
|
Posté le : Mer Mai 04, 2005 16:18 Sujet du message: [résolu] Export Excel -> MySql |
|
|
MySQL est capable d'importer un fichier MySQL tout seul comme un grand
| Code: |
LOAD DATA LOCAL INFILE '/importfile.csv'
INTO TABLE test_table
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1, filed2, field3); |
En oubliantpas lors de l'export CVS d'ajouter des doubles quotes autour des champs texte |
|
| |
|
 |
blman WRInaute accro

Inscrit le: 05 Sep 2003 Messages: 2747 Localisation: Nantes / Laval (France)
|
Posté le : Mer Mai 04, 2005 16:25 Sujet du message: [résolu] Export Excel -> MySql |
|
|
| Je vais essayer ça shroom, je te tiens au courant... |
|
| |
|
 |
blman WRInaute accro

Inscrit le: 05 Sep 2003 Messages: 2747 Localisation: Nantes / Laval (France)
|
Posté le : Mer Mai 04, 2005 16:54 Sujet du message: [résolu] Export Excel -> MySql |
|
|
Shroom, J'ai pas trouvé comment faire pour rajouter des " pour encadrer mes valeurs lors de l'export en CSV.
Par contre, le lien fourni par Gaëtan R m'a permis de trouver une solution pour virer les retours de ligne. Pour ceux que ça interresse, la voici :
- je sélectionne toutes mes cellules où il y a des retours de ligne
- je vais dans édition / rechercher / remplacer
- pour rechercher, j'inscris 0010 (ou 0013) en tenant la touche ALT enfoncée
- je remplace par " - " ou un autre caractère, peu importe
- je clique sur "Remplacer" et là, c'est un gros YES de soulagement car je n'est plus un seul retour de ligne. VICTORY !!!
Merci encore à tous de vous être donné la peine de m'aider. C'est à charge de revanche comme d'habitude... |
|
| |
|
 |
| |
|
|