web-dev-qa-db-ja.com

Python-'get_sheet_by_name'のエラー

これはこれまでのところ私のコードです:

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

しかし、私はこれらのエラーを受け取ります:

警告(警告モジュールから):
/ファイル "main"、1行目
DeprecationWarning:非推奨の関数get_sheet_namesへの呼び出し(wb.sheetnamesを使用)。
['Sheet1'、 'Sheet2'、 'Sheet3']

4
Doug C

警告はエラーではありません-プログラムの実行を妨げることはありません。の場合には deprecated warnings:将来のバージョンで削除される機能を使用しているため、開発者はそれを非推奨にしました。

現在は機能する可能性がありますが、次のバージョンではこの機能が削除されたため、機能しなくなる可能性があります-その後エラーが発生します。

次のように修正できます。

wb.sheetnames # all names

sheet = wb["UseThisSheet"]  # select a certain sheet by name

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

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

ソース: https://openpyxl.readthedocs.io/en/stable/tutorial.html

以下は、ワークブックの作成方法に関する短い例です(他のいくつかのxlsx質問に対する私の回答): https://stackoverflow.com/a/48782382/7505395

13
Patrick Artner

私は自分のpythonでいくつかの異なるワークシートを使用しているので、リスト全体から作業する必要がありました。以下を追加しました

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

警告が表示されますが、以下のコードは正常に動作します(Python3を使用)。wb.get_sheet_names()ではなくwb.sheetnamesを試してみました

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