web-dev-qa-db-fra.com

Python - erreur sur 'get_sheet_by_name'

C'est mon code jusqu'à présent:

import os
import openpyxl
os.chdir('C:\\Python34\\MyPy')
wb=openpyxl.load_workbook('example.xlsx')
wb.get_sheet_names()

Mais je reçois ces erreurs:

Avertissement (du module avertissements):
/Fichier " main ", ligne 1
DeprecationWarning: appel de la fonction obsolète get_sheet_names (Use wb.sheetnames).
['Sheet1', 'Sheet2', 'Sheet3']

2
Doug C

Les avertissements ne sont pas des erreurs - ils n'empêcheront pas votre programme de s'exécuter. Dans le cas de deprecated warnings: vous utilisez une fonctionnalité qui sera supprimée dans les versions futures, de sorte que le label devs est obsolète.

Cela fonctionne peut-être maintenant, mais la version suivante ne le sera peut-être plus car cette fonctionnalité a été supprimée - then vous obtiendrez une erreur.

Vous pouvez le réparer comme ça:

wb.sheetnames # all names

sheet = wb["UseThisSheet"] # a certain sheet

for sheet in wb:           # go over all sheets 
    print(sheet.title)

sh = wb.active             # normally sheet at index 0 if you create an empy one

Source: https://openpyxl.readthedocs.io/fr/stable/tutorial.html

Voici un court exemple sur la façon de créer un classeur (ma réponse à une autre question xlsx): https://stackoverflow.com/a/48782382/7505395

9
Patrick Artner

Comme je me retrouvais dans plusieurs feuilles de calcul différentes de mon python, j'avais besoin de toute la liste pour travailler. J'ai ajouté le suivant

wbInputFile = load_workbook(inFile)
sheetList = wbInputFile.sheetnames
worksheet = wbInputFile[ sheetList[0] ]

#  now I am able to run through the rows and get the info
for row in range(2,worksheet.max_row ):
    # get the values for each cell needed
1
RonR

Cela donne un avertissement, mais le code ci-dessous fonctionne bien (avec Python3). J'ai essayé avec wb.sheetnames au lieu de wb.get_sheet_names ()

import openpyxl
path="C:\\Users\user1\PycharmProjects\Projectstatus\My Python.xlsx"
wb=openpyxl.load_workbook(path)
print(wb.sheetnames)
0
MNA