xlwingsやxlrdで、Excelの全シート名を取得するコードをご紹介しました。
データ解析を行うライブラリpandasでも、Excelの全シート名を取得できます。
pandasのsheet_namesで全シート名を取得するサンプル
以下のスクリプトを実行すると、Cドライブtempフォルダーに存在するfoo.xlsxファイルの全シート名がprintされます。
bk = pandas.ExcelFile('C:\\temp\\foo.xlsx')
print(bk.sheet_names)
pandasのExcelFileオブジェクトに用意されているsheet_names属性を使うと、シート名一覧をリストとして取得できます。
内部ではxlrdを利用
xlrdで、
bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')
print(bk.sheet_names())
というコードをご紹介しました。
上述のpandasのコードは、このxlrdのコードと内部的には同じです。
pandasの
bk = pandas.ExcelFile('C:\\temp\\foo.xlsx')
は、xlrdの
bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')
を内部で呼び、pandasの
print(bk.sheet_names)
は、xlrdの
print(bk.sheet_names())
を内部で呼んでいるだけだからです。
xlrdではsheet_names()ですが、pandasの場合sheet_namesとしなければならない点には、注意が必要だと感じます。
dict.keys()を使って全シート名を取得するサンプル
全シート名を取得するだけならば、上記のコードがおすすめですけれど、以下のようなコードでも全シート名の取得は可能です。
dic_df = pandas.read_excel('C:\\temp\\foo.xlsx', sheet_name=None)
print(list(dic_df.keys()))
pandas.read_excel()関数の引数sheet_nameにNoneを指定すると、シート名をkey、各ワークシートのデータをvalueとして持つ、dictionaryの形で、全ワークシートのデータを取得できます。
dic_df = pandas.read_excel('C:\\temp\\foo.xlsx', sheet_name=None)
このkeyだけを、dict.keys()メソッドで取得して、list()関数でリストにしてからprintしています。
print(list(dfs.keys()))
最終更新日時:2023-03-28 09:58
- Newer:python-pptxで文字列を抽出する
- Older:xlrdで全シート名を取得する
Home » Python » pandasの使い方 » pandasでExcelの全シート名を取得する-ExcelFile.sheet_names属性