web-dev-qa-db-fra.com

obtenir les noms des feuilles depuis openpyxl

J'ai un fichier xlsx moyennement volumineux (environ 14 Mo) et OpenOffice se bloque en essayant de l'ouvrir. J'essayais d'utiliser openpyxl pour lire le contenu, après ce tutoriel . L'extrait de code est le suivant:

 from openpyxl import load_workbook
 wb = load_workbook(filename = 'large_file.xlsx', use_iterators = True)
 ws = wb.get_sheet_by_name(name = 'big_data') 

Le problème est que je ne connais pas le nom de la feuille et que Sheet1/Sheet2 .. etc. ne fonctionnait pas (objet NoneType renvoyé). Je ne trouvais pas de documentation indiquant comment obtenir les noms de feuille d'un fichier xlsx à l'aide de openpyxl . Quelqu'un peut-il m'aider?

35
rivu

Utilisez la propriété sheetnames :

noms de feuille

Renvoie la liste des noms des feuilles de calcul de ce classeur.

Les noms sont retournés dans l'ordre des feuilles de calcul.

Type: liste de chaînes

print (wb.sheetnames)

Vous pouvez également obtenir des objets de feuille de calcul à partir de wb.worksheets:

ws = wb.worksheets[0]
66
alecxe

python 3.xpour obtenir le nom de la feuille, vous devez utiliser l'attribut

g_sheet=wb.sheetnames

retour par liste

for i in g_sheet:
    print(i)

** Choisissez n'importe quel nom **

ws=wb[g_sheet[0]]

ou ws = wb [n'importe quel nom]supposons que le nom de la feuille de nom soit purgé

ws=wb["paster"]
0
ismail

Comme mentionné précédemment, vous pouvez obtenir la liste des noms de feuille en utilisant le ws.sheetnames

Mais si vous connaissez les noms de feuille, vous pouvez obtenir cet objet de feuille de calcul en

ws.get_sheet_by_name("YOUR_SHEET_NAME")

Une autre façon de faire est comme mentionné dans la réponse précédente

ws['YOUR_SHEET_NAME']
0
Kamaraj