liste des feuilles d'un fichier excel

liste des feuilles d'un fichier excel - Python - Programmation

Marsh Posté le 15-01-2019 à 15:38:46    

Bonjour,
 
Actuellement en train de coder un script ayant pour but d'extraire 2 feuilles d'un fichier excel pour les convertir en PDF, je suis confronté à un problème:
 
Une de mes feuilles porte un nom avec un "é" et lorsque je tente d'avoir la liste de feuilles de mon fichier j'ai l'erreur suivante:
 
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 29: ordinal not in range(128)
 
J'ai vérifié, je suis en UTF-8 et c'est le terme "complémentaire" qui pose soucis.
 
J'ai beau chercher sur la toile je ne trouve pas de solution.....
 
Quelqu' un peut il au moins m'aiguiller?
 
Merci,
 
Cdt

Reply

Marsh Posté le 15-01-2019 à 15:38:46   

Reply

Marsh Posté le 15-01-2019 à 17:45:27    

T'es en Python 2 et t'essaies de convertir une valeur unicode en str, truc du style. Par défaut, une conversion unicode -> str va utiliser l'encodage ascii, dans lequel "é" n'existe pas.

 

Après sans avoir des infos utiles (genre une version réduite d'un cas de repro qui montre le problème) difficile d'être sûr, ya pas de magiciens dans le coin.

 

edit: les traceback complète c'est utile aussi, là encore ça donne des infos contextuelles.


Message édité par masklinn le 15-01-2019 à 17:47:32

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-01-2019 à 08:44:14    

Mon en python:
Python 3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:09:58)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
 
Extrait de mon script:
#!/usr/bin/python
import xlrd
workbook = xlrd.open_workbook(path_file)
sheet_names = workbook.sheet_names()
print ("sheet Names: ",sheet_names)
 et quand je l'exécute j'ai l'erreur:
 
sheet Names:  Traceback (most recent call last):
  File "./PrintMyCRA.py", line 29, in <module>
    print ("sheet Names: ",sheet_names)
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 60: ordinal not in range(128)
 
Pour une feuille qui s'appelle: "Prestations complémentaire"
 
Je voulais en fait faire la liste de feuilles pour justement voir comment le "é" apparaissait pour le coder dans mon script et sélectionner cette feuille la....
 
merci pour votre aide...
 
 
 

Reply

Marsh Posté le 16-01-2019 à 10:41:06    

J'ai résolu mon soucis en sauvant mon fichier .xlsm en encodage UTF8:
 
https://help.surveygizmo.com/help/en...tf-8-or-utf-16
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed