webentwicklung-frage-antwort-db.com.de

Python - Fehler bei 'get_sheet_by_name'

Dies ist mein Code bisher:

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

Aber ich bekomme diese Fehler:

Warnung (vom Warnungsmodul):
/Datei " main ", Zeile 1
DeprecationWarning: Aufruf an die veraltete Funktion get_sheet_names (Use wb.sheetnames).
['Sheet1', 'Sheet2', 'Sheet3']

2
Doug C

Warnungen sind keine Fehler - sie hindern Ihr Programm nicht am Ausführen. Im Fall von deprecated warnings: Sie verwenden eine Funktion, die in zukünftigen Versionen entfernt wird, sodass die Entwickler diese Bezeichnung nicht mehr verwenden.

Möglicherweise funktioniert es jetzt, aber in der nächsten Version wird diese Funktion möglicherweise nicht mehr entfernt - dann wird ein Fehler angezeigt.

Sie können es so beheben:

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

Quelle: https://openpyxl.readthedocs.io/de/stable/tutorial.html

Hier ist ein kurzes Beispiel zum Erstellen einer Arbeitsmappe (meine Antwort auf eine andere xlsx-Frage): https://stackoverflow.com/a/48782382/7505395

9
Patrick Artner

Da ich in einigen verschiedenen Arbeitsblättern in meinem Python herumhüpfe, brauchte ich die ganze Liste, um daraus zu arbeiten. Ich habe folgendes hinzugefügt:

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

Es gibt eine Warnung, aber der folgende Code funktioniert gut (mit Python3). Ich habe es mit wb.sheetnames anstelle von wb.get_sheet_names () versucht.

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