Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Pour vous, pour moi.
1 décembre 2008

Excel, UTF-8 et le presse-papier

Un client de Progiweb (ma boîte) nous a confié l'import de son catalogue dans une base MySQL v4.
Là où c'est balaise, c'est que c'est un catalogue en anglais (jusque là tout va bien) et polonais !
D'où le format Unicode qu'on aime tous : UTF-8.

Dessous notre base MySQL se cache MyISAM avec des colonnes en "utf8_general_ci", et on tape dans tout ça avec PHP 5. Donc j'ai du faire un "mysql_request('SET NAMES \'utf8\'');" pour faire des "INSERT", mais sinon ça roule.

Ce client, comme beaucoup de client qui n'ont rien compris à l'informatique (j'ai pas dit que tous les clients n'y comprennent rien... relisez :) ), nous envoie son catalogue dans un fichier Excel.
Je me dis : "Pas de panique, Excel c'est un outil moderne et puissant puisque tout le monde l'utilise !".
... \_o<*pouic* \_o<*pouic* \_o<*pouic* \_o<*pouic*...

Je voulais donc exporter un fichier Excel contenant des caractères UTF8 au format text, type CSV, mais de préférence avec des '|' comme séparateurs puisque le texte peut contenir des virgules ou des point-virgules.

Je fais "Fichier > Enregistrer sous...". J'essaye au format CSV, au format texte séparé par des tabulations, tout ça. Et je n'obtiens que des caractères bizarres à la places des caractères polonais (comme le "L barré").

Après avoir lu des blogs et forums conseillant de faire du VBA parce qu'en natif tout ça machin ça marche pas, mon génie de boss (il adore que je l'appelle comme ça) m'a dit :
"Tu vas y arriver, essaye de copier/coller depuis Excel vers un outil simple type Textpad, dans un fichier texte au format déjà UTF-8 !".

Eh bien la solution c'était ça (il est trop fort mon boss !) :

  1. Ouvrir Notepad++ (oui, c'est libre et c'est mieux !).
  2. Indiquer que le fichier vide courant est au format UTF8;
  3. Enregistrer ce fichier.
  4. Ouvrir le fichier Excel, avec Excel.
  5. Tout sélectionner.
  6. Copier.
  7. Aller dans Notepad++.
  8. Coller.

A ce moment là, j'ai tout qu'est bon, à un détail près : le délimiteur de colonne est la tabulation, et je veux des '|'. Pas de soucis :

  1. Copier une tabulation dans le fichier.
  2. Aller dans Rechercher, remplacer.
  3. Coller la tabulation et demander son remplacement partout par '|'.

Ne pas oublier d'enregistrer ;)

Plus je lisais ce que les autres avaient traversé, moins j'y croyais... merci Olivier ! Et merci le presse-papier Windows qu'est pas si pourri que ça (... dur).

Publicité
Publicité
Commentaires
M
J'fais pas ça pour qu'on me suive :) j'fais ça pour ne pas en perdre une miette ! Parce que la mémoire, c'est pas en vieillissant qu'on l'améliore...<br /> Et je fais ce que je veux (oui, avec mes cheveux aussi) !
M
Alors premièrement, est-ce que tu crois que beaucoup de gens vont te suivre sur ce billet ?? Et deuxièmement, ce projet est censé être confidentiel !! Rhôôô mais tu pourras te venger demain t'en fais pas... :D
Pour vous, pour moi.
Publicité
Publicité