Mais avec le code ci-dessous je n'arrive pas à me défaire d'une erreur
d'encodage. csv.writer a l'UTF-8 désactivé pour l'instant comme
l'explique la documentation.
Si quelqu'un peu m'éclairer ...
Merci !
Pour generer une erreur il faut créer un fichier excel avec des valeurs
avec des caractères accentués.
classeur = excel.Workbooks.Open("C:/XLS/test.xls")
feuille = classeur.ActiveSheet #On recupere la feuille courante
maxcol = feuille.UsedRange.Columns.Count #Recupere le nombre de colonne
maximum
maxline = feuille.UsedRange.Rows.Count #Recupere le nombre de ligne maximum
c = csv.writer(codecs.open("c:\XLS\\new.csv", "wb"), delimiter=";")
print feuille.UsedRange.value[0]
#or row in feuille.UsedRange.value:
# print row
#c.writerow(row)
Mais avec le code ci-dessous je n'arrive pas à me défaire d'une erreur d'encodage.
Traceback, s'il te plait...
(snip)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Cémoi
Bonjour,
Je cherche à convertir une feuille excel en CSV.
je vais peut-etre être hors sujet, mais je me risque: il existe un module Python qui permet de lire et d'extraire des informations d'un classeur Excel. Ce module fonctionne sur n'importe quelle plateforme permettant d'executer du code Python et ne requiert aucun executable ou bibliotheque MS Office.
Je ne sais pas si le module xlrd (c'est son nom) te permettra de te tirer d'affaire mais je sais que son developpeur J. Machin est très reactif et qu'il saura eventuellement corriger son module si un probleme de support du code UTF-8 se présentait.
A propos la version 0.5.2 du module xlrd vient juste d'etre livrée (http://cheeseshop.python.org/pypi/xlrd/0.5.2). Les anglo-saxons ont l'habitude de poster ce genre de nouvelles sur leur forum, a t'on les memes habitudes sur f.c.l.p ?
HTH,
Laurent
Bonjour,
Je cherche à convertir une feuille excel en CSV.
je vais peut-etre être hors sujet, mais je me risque: il existe un
module Python qui permet de lire et d'extraire des informations d'un
classeur Excel. Ce module fonctionne sur n'importe quelle plateforme
permettant d'executer du code Python et ne requiert aucun executable ou
bibliotheque MS Office.
Je ne sais pas si le module xlrd (c'est son nom) te permettra de te
tirer d'affaire mais je sais que son developpeur J. Machin est très
reactif et qu'il saura eventuellement corriger son module si un probleme
de support du code UTF-8 se présentait.
A propos la version 0.5.2 du module xlrd vient juste d'etre livrée
(http://cheeseshop.python.org/pypi/xlrd/0.5.2).
Les anglo-saxons ont l'habitude de poster ce genre de nouvelles sur leur
forum, a t'on les memes habitudes sur f.c.l.p ?
je vais peut-etre être hors sujet, mais je me risque: il existe un module Python qui permet de lire et d'extraire des informations d'un classeur Excel. Ce module fonctionne sur n'importe quelle plateforme permettant d'executer du code Python et ne requiert aucun executable ou bibliotheque MS Office.
Je ne sais pas si le module xlrd (c'est son nom) te permettra de te tirer d'affaire mais je sais que son developpeur J. Machin est très reactif et qu'il saura eventuellement corriger son module si un probleme de support du code UTF-8 se présentait.
A propos la version 0.5.2 du module xlrd vient juste d'etre livrée (http://cheeseshop.python.org/pypi/xlrd/0.5.2). Les anglo-saxons ont l'habitude de poster ce genre de nouvelles sur leur forum, a t'on les memes habitudes sur f.c.l.p ?
HTH,
Laurent
Bertrand
c.writerow(row) UnicodeEncodeError: 'ascii' codec can't encode character u'xe8' in position 4: ordinal not in range(128)
Bonjour,
Je cherche à convertir une feuille excel en CSV.
Mais avec le code ci-dessous je n'arrive pas à me défaire d'une erreur d'encodage. csv.writer a l'UTF-8 désactivé pour l'instant comme l'explique la documentation.
Si quelqu'un peu m'éclairer ...
Merci !
Pour generer une erreur il faut créer un fichier excel avec des valeurs avec des caractères accentués.
classeur = excel.Workbooks.Open("C:/XLS/test.xls") feuille = classeur.ActiveSheet #On recupere la feuille courante maxcol = feuille.UsedRange.Columns.Count #Recupere le nombre de colonne maximum maxline = feuille.UsedRange.Rows.Count #Recupere le nombre de ligne maximum
c = csv.writer(codecs.open("c:XLSnew.csv", "wb"), delimiter=";") print feuille.UsedRange.value[0] #or row in feuille.UsedRange.value: # print row #c.writerow(row)
excel.Workbooks.Close() excel.Quit()
c.writerow(row)
UnicodeEncodeError: 'ascii' codec can't encode character u'xe8' in
position 4:
ordinal not in range(128)
Bonjour,
Je cherche à convertir une feuille excel en CSV.
Mais avec le code ci-dessous je n'arrive pas à me défaire d'une erreur
d'encodage. csv.writer a l'UTF-8 désactivé pour l'instant comme
l'explique la documentation.
Si quelqu'un peu m'éclairer ...
Merci !
Pour generer une erreur il faut créer un fichier excel avec des valeurs
avec des caractères accentués.
classeur = excel.Workbooks.Open("C:/XLS/test.xls")
feuille = classeur.ActiveSheet #On recupere la feuille courante
maxcol = feuille.UsedRange.Columns.Count #Recupere le nombre de colonne
maximum
maxline = feuille.UsedRange.Rows.Count #Recupere le nombre de ligne maximum
c = csv.writer(codecs.open("c:XLS\new.csv", "wb"), delimiter=";")
print feuille.UsedRange.value[0]
#or row in feuille.UsedRange.value:
# print row
#c.writerow(row)
c.writerow(row) UnicodeEncodeError: 'ascii' codec can't encode character u'xe8' in position 4: ordinal not in range(128)
Bonjour,
Je cherche à convertir une feuille excel en CSV.
Mais avec le code ci-dessous je n'arrive pas à me défaire d'une erreur d'encodage. csv.writer a l'UTF-8 désactivé pour l'instant comme l'explique la documentation.
Si quelqu'un peu m'éclairer ...
Merci !
Pour generer une erreur il faut créer un fichier excel avec des valeurs avec des caractères accentués.
classeur = excel.Workbooks.Open("C:/XLS/test.xls") feuille = classeur.ActiveSheet #On recupere la feuille courante maxcol = feuille.UsedRange.Columns.Count #Recupere le nombre de colonne maximum maxline = feuille.UsedRange.Rows.Count #Recupere le nombre de ligne maximum
c = csv.writer(codecs.open("c:XLSnew.csv", "wb"), delimiter=";") print feuille.UsedRange.value[0] #or row in feuille.UsedRange.value: # print row #c.writerow(row)
excel.Workbooks.Close() excel.Quit()
Bertrand
Merci je suis en train de jeter un coup d'oeil.
Bonjour,
Je cherche à convertir une feuille excel en CSV.
je vais peut-etre être hors sujet, mais je me risque: il existe un module Python qui permet de lire et d'extraire des informations d'un classeur Excel. Ce module fonctionne sur n'importe quelle plateforme permettant d'executer du code Python et ne requiert aucun executable ou bibliotheque MS Office.
Je ne sais pas si le module xlrd (c'est son nom) te permettra de te tirer d'affaire mais je sais que son developpeur J. Machin est très reactif et qu'il saura eventuellement corriger son module si un probleme de support du code UTF-8 se présentait.
A propos la version 0.5.2 du module xlrd vient juste d'etre livrée (http://cheeseshop.python.org/pypi/xlrd/0.5.2). Les anglo-saxons ont l'habitude de poster ce genre de nouvelles sur leur forum, a t'on les memes habitudes sur f.c.l.p ?
HTH,
Laurent
Merci je suis en train de jeter un coup d'oeil.
Bonjour,
Je cherche à convertir une feuille excel en CSV.
je vais peut-etre être hors sujet, mais je me risque: il existe un
module Python qui permet de lire et d'extraire des informations d'un
classeur Excel. Ce module fonctionne sur n'importe quelle plateforme
permettant d'executer du code Python et ne requiert aucun executable ou
bibliotheque MS Office.
Je ne sais pas si le module xlrd (c'est son nom) te permettra de te
tirer d'affaire mais je sais que son developpeur J. Machin est très
reactif et qu'il saura eventuellement corriger son module si un probleme
de support du code UTF-8 se présentait.
A propos la version 0.5.2 du module xlrd vient juste d'etre livrée
(http://cheeseshop.python.org/pypi/xlrd/0.5.2).
Les anglo-saxons ont l'habitude de poster ce genre de nouvelles sur leur
forum, a t'on les memes habitudes sur f.c.l.p ?
je vais peut-etre être hors sujet, mais je me risque: il existe un module Python qui permet de lire et d'extraire des informations d'un classeur Excel. Ce module fonctionne sur n'importe quelle plateforme permettant d'executer du code Python et ne requiert aucun executable ou bibliotheque MS Office.
Je ne sais pas si le module xlrd (c'est son nom) te permettra de te tirer d'affaire mais je sais que son developpeur J. Machin est très reactif et qu'il saura eventuellement corriger son module si un probleme de support du code UTF-8 se présentait.
A propos la version 0.5.2 du module xlrd vient juste d'etre livrée (http://cheeseshop.python.org/pypi/xlrd/0.5.2). Les anglo-saxons ont l'habitude de poster ce genre de nouvelles sur leur forum, a t'on les memes habitudes sur f.c.l.p ?
HTH,
Laurent
Méta-MCI
Bonsoir !
Je propose une autre solution, beaucoup plus simple et plus souple. Il s'agit de lire les valeurs, dans une liste Python. Ensuite, on peut en faire ce que l'on veut, y compris l'écrire dans un fichier CSV.
Exemple de code :
import win32com.client excel = win32com.client.Dispatch('Excel.Application') excel.Visible = 1 #0 va plus vite feuille = excel.Workbooks.Open("C:ess.xls") listvaleur = excel.Range("A1:M500").Value excel.Quit() for lig in listvaleur: print lig
Comme on récupère tout un bloc de données, en une seule instruction, c'est très facile à programmer.
@-salutations
Michel Claveau
Bonsoir !
Je propose une autre solution, beaucoup plus simple et plus souple.
Il s'agit de lire les valeurs, dans une liste Python. Ensuite, on peut en
faire ce que l'on veut, y compris l'écrire dans un fichier CSV.
Exemple de code :
import win32com.client
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = 1 #0 va plus vite
feuille = excel.Workbooks.Open("C:\ess.xls")
listvaleur = excel.Range("A1:M500").Value
excel.Quit()
for lig in listvaleur:
print lig
Comme on récupère tout un bloc de données, en une seule instruction, c'est
très facile à programmer.
Je propose une autre solution, beaucoup plus simple et plus souple. Il s'agit de lire les valeurs, dans une liste Python. Ensuite, on peut en faire ce que l'on veut, y compris l'écrire dans un fichier CSV.
Exemple de code :
import win32com.client excel = win32com.client.Dispatch('Excel.Application') excel.Visible = 1 #0 va plus vite feuille = excel.Workbooks.Open("C:ess.xls") listvaleur = excel.Range("A1:M500").Value excel.Quit() for lig in listvaleur: print lig
Comme on récupère tout un bloc de données, en une seule instruction, c'est très facile à programmer.
@-salutations
Michel Claveau
Bertrand
Merci pour ce code. Mon probleme est que ça me renvoie de l'UTF8...
Bonsoir !
Je propose une autre solution, beaucoup plus simple et plus souple. Il s'agit de lire les valeurs, dans une liste Python. Ensuite, on peut en faire ce que l'on veut, y compris l'écrire dans un fichier CSV.
Exemple de code :
import win32com.client excel = win32com.client.Dispatch('Excel.Application') excel.Visible = 1 #0 va plus vite feuille = excel.Workbooks.Open("C:ess.xls") listvaleur = excel.Range("A1:M500").Value excel.Quit() for lig in listvaleur: print lig
Comme on récupère tout un bloc de données, en une seule instruction, c'est très facile à programmer.
@-salutations
Michel Claveau
Merci pour ce code. Mon probleme est que ça me renvoie de l'UTF8...
Bonsoir !
Je propose une autre solution, beaucoup plus simple et plus souple.
Il s'agit de lire les valeurs, dans une liste Python. Ensuite, on peut en
faire ce que l'on veut, y compris l'écrire dans un fichier CSV.
Exemple de code :
import win32com.client
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = 1 #0 va plus vite
feuille = excel.Workbooks.Open("C:\ess.xls")
listvaleur = excel.Range("A1:M500").Value
excel.Quit()
for lig in listvaleur:
print lig
Comme on récupère tout un bloc de données, en une seule instruction, c'est
très facile à programmer.
Merci pour ce code. Mon probleme est que ça me renvoie de l'UTF8...
Bonsoir !
Je propose une autre solution, beaucoup plus simple et plus souple. Il s'agit de lire les valeurs, dans une liste Python. Ensuite, on peut en faire ce que l'on veut, y compris l'écrire dans un fichier CSV.
Exemple de code :
import win32com.client excel = win32com.client.Dispatch('Excel.Application') excel.Visible = 1 #0 va plus vite feuille = excel.Workbooks.Open("C:ess.xls") listvaleur = excel.Range("A1:M500").Value excel.Quit() for lig in listvaleur: print lig
Comme on récupère tout un bloc de données, en une seule instruction, c'est très facile à programmer.
@-salutations
Michel Claveau
Encolpe Degoute
Merci pour ce code. Mon probleme est que ça me renvoie de l'UTF8...
s.decode('utf-8').encode('cp1252') ou s.decode('utf-8').encode('iso8859-15')
pour passer en ascii pur c'est un peu plus compliqué:
import unicodedata
id = '' try: id = s.decode('utf-8') except UnicodeDecodeError: id = s.decode('cp1252', 'ignore')
id = unicodedata.normalize('NFKD', id) id = id.encode('ascii', 'ignore')
-- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
Merci pour ce code. Mon probleme est que ça me renvoie de l'UTF8...
s.decode('utf-8').encode('cp1252')
ou
s.decode('utf-8').encode('iso8859-15')
pour passer en ascii pur c'est un peu plus compliqué:
import unicodedata
id = ''
try:
id = s.decode('utf-8')
except UnicodeDecodeError:
id = s.decode('cp1252', 'ignore')
id = unicodedata.normalize('NFKD', id)
id = id.encode('ascii', 'ignore')
--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales