ProRealTime
Zone de développement des applications API, des logiciels et utilitaires développés par les membres du forum
Répondre Page 1 sur 1

Convertisseur csv vers Excel Français

par falex » 25 Fév 2019 18:43

Comme évoqué dans la file du jour, le fichier csv d'IG sur la nouvelle plate-forme web n'est pas très sympa pour nous autre francophone :
1) il utilise "," et non pas ";" comme séparateur de champ
2) il est codé en UTF8.
Les deux cumulé fait qu'Excel ne sait pas reconnaitre le fichier CSV comme un CSV. :evil: :evil: :evil:

En cette fin de journée j'ai fait un convertisseur en python qui prend en argument d'entrée le nom d'un fichier .csv et crée une copie en modifiant :
1) "," en ";"
2) passe d'un encodage UTF-8 en UTF-8-BOM.

Et comme windows est sympa il suffit de faire un glisser/déposer du fichier à convertir sur le ".bat" pour que ça se passe tout seul :

Le fichier .bat :
Code: Tout sélectionner
cd %~dp0
c:\Python27\python convertisseurIG.py %1
pause


Le convertisseur que j'ai nommé "convertisseurIG.py"
Code: Tout sélectionner
import codecs, sys

file_in = sys.argv[1]
print(file_in)
file_out = file_in+".converted.csv"
s = codecs.open(file_in, 'r', 'utf-8').read()

s = s.replace(',',';') #Conversion des , en ;
codecs.open(file_out, 'w', 'utf-8-sig').write(s) #Conversion en format UTF_8_BOM


Une fois la conversion faite, je n'ai plus qu'a double cliquer sur mon fichier csv pour le traiter dans Excel.

A adapter si vous avez installé une autre version de python ou dans un autre répertoire.
Aucune librairie à installer sys et codecs sont installé par défaut.

Re: Convertisseur csv vers Excel Français

par Benoist Rousseau » 26 Fév 2019 08:02

Merci beaucoup falex

Re: Convertisseur csv vers Excel Français

par kero » 26 Fév 2019 08:44

Sinon Libreoffice, de mémoire, parvient à lire sans soucis les csv de IG. Tu ne peux pas, dans Excel, configurer pour qu'il considère les ";" comme séparateurs et pour qu'il lise de l'UTF8, qui est la norme ??

Re: Convertisseur csv vers Excel Français

par falex » 26 Fév 2019 10:33

Pour le ";" faut que je change le paramètre dans windows, donc juste pour une extraction par mois ça vaut pas le coup.

Pour l'UTF-8, malheureusement non là je suis bien obligé de faire la conversion avant ou après.

En lisant les forum autour d'excel, les version ultra-récente d'Excel, semble accepte l'UTF-8 sans BOM ... mais le coup du "," vs ";" reste un problème de fond et de "régionalisation" de windows.

Certainement Libre-office ferai le job mais bon idem pour juste une importation de temps en temps je ne vais pas installer un nouvel outil.
J'ai utilisé Libreoffice la semaine dernière, ils ont fait un énorme taf, on est plus très loin d'avoir un truc qui ressemble de très près à Excel.

Re: Convertisseur csv vers Excel Français

par kero » 26 Fév 2019 11:49

Bah sur certains points Libreoffice est probablement inférieur, sur d'autres manifestement supérieur. Entre autres, en terme d'interopérabilité. La preuve. ;)

Bref c'est pas pour lancer un débat. Jolie solution, ton code, anyway.

Re: Convertisseur csv vers Excel Français

par falex » 26 Fév 2019 12:20

Après c'est comme toujours pour un problème il y a toujours 150 solutions ;-)

Dans mon cas je voulais pouvoir double cliquer sur le csv pour l'ouvrir directement formaté dans Excel. Mission accompli sans installer 10millions de soft ultra-lourd.

Articles en relation
Utilisation Excel avec API IG
Fichier(s) joint(s) par VK_Trader » 15 Mai 2015 02:16 (46 Réponses)
Récupérer les cours des marchés IG sous Excel
par LPhilippe » 22 Aoû 2015 16:25 (9 Réponses)
PROREALCODE en français
par beloul » 26 Sep 2018 15:20 (4 Réponses)

ProRealTime