Bonjour,
Le plus simple est d'utiliser le module csv fourni avec Python.
Cela conduira à transformer, par exemple le tableau:
[["toto", 0.25], ["titi", 0.82], ["tata", 0.45]]
en un fichier texte xxx.csv qui contiendra:
1 2 3
| "toto";0.25
"titi";0.82
"tata";0.45 |
On peut régler les paramètres: avoir ou non les guillemets et choisir le séparateur (ici un ";")
Ce fichier est reconnu sans difficulté par Excel qui placera chaque donnée séparée par le séparateur ";" dans une colonne différente.
Un problème cependant: Excel a une reconnaissance automatique des nombres. Cela peut être pratique, mais aussi gênant dans certains cas: par exemple, les codes postaux sont reçus comme des nombres, même transférés avec des guillemets. Cela veut dire aussi qu'une version française d'Excel s'attendra à ce qu'un nombre réel arrive avec une virgule décimale. Donc, si on laisse le point décimal, le nombre sera intégré dans Excel avec le type chaine. Pour palier ce problème, il suffit de convertir le nombre en chaine et de changer le point en virgule avec replace: (str(nb).replace('.', ',')). Ce qui donnera le fichier:
1 2 3
| "toto";"0,25"
"titi";"0,82"
"tata";"0,45" |
Je ne sais pas si tu travailles avec Python 2 ou 3. Si c'est avec Python 2, il faudra voir le problème des encodages des chaines de caractères en cas de textes comportant des caractères accentués.
A noter qu'Excel est lui-même capable d'exporter ses données sous forme de fichiers csv, ce qui permet à Python de les lire (toujours avec ce module csv) pour les exploiter.
Ces fichiers csv sont simples à construire, mais on ne transfère ainsi que des données, c'est à dire pas de formule ni de format de présentation des grilles. Pour lire/écrire des tableaux Excel plus complexes, il y a d'autres modules à utiliser comme ici: http://www.python-excel.org/.
Partager