※このページではアフィリエイト広告を利用しています

【Python応用】Pandasを用いたExcelシート名一覧を取得する方法

Python

ここではPandasを用いたExcelシート名の一覧を取得する方法について解説しています。

スポンサーリンク
スポンサーリンク

行ったこと

Excelファイルにおけるシート名の一覧を取得してテキストファイルに出力するプログラムを作成しました。

プログラム

import pandas as pd
def write_sh(s_name):
#1---file読込み
    file = s_name
    dfs = pd.read_excel(file,sheet_name=None)
#2---sheet名の取得
    sh_name = []
    sh_name = list(dfs.keys())
#3---txtファイルの保存名作成
    wr_s = []
    wr_s = s_name.split(".")
    sheetname = str(wr_s[0]) + "_sheetname.txt"
    open_file = open(sheetname , mode = "w" , encoding = "utf-8")
#4---txtファイルに書込み
    for i in sh_name:
        open_file.write(str(i)+"\n")
    open_file.close()

write_sh("test.xlsx")

上記がプログラムになります。

それでは解説していきます。

def write_sh(s_name):
#1---file読込み
    file = s_name
    dfs = pd.read_excel(file,sheet_name=None)

1の部分では関数で指定したファイル名を基にpandasで読込んでいます。その際、「sheet_name = None」とすることで全てのシート情報を取得しています。

#2---sheet名の取得
    sh_name = []
    sh_name = list(dfs.keys())

2の部分ではkeysでシート名を取得しています。取得した内容をリスト型に格納しています。

#3---txtファイルの保存名作成
    wr_s = []
    wr_s = s_name.split(".")
    sheetname = str(wr_s[0]) + "_sheetname.txt"
    open_file = open(sheetname , mode = "w" , encoding = "utf-8")

3の部分では取得したシート名をtxtファイルに出力しています。「s_name.split(“.”)」は保存するテキストファイル名を読込んだexcelファイル名にするために「test.xlsx」の「.」を基に分割しています。

次に「str(wr_s[0]) + “_sheetname.txt”」でファイル名を作成しています。

最後に「open(sheetname , mode = “w” , encoding = “utf-8”)」ではtxtファイルを書込みモードで宣言しています。

#4---txtファイルに書込み
    for i in sh_name:
        open_file.write(str(i)+"\n")
    open_file.close()

4の部分ではシート名を一行ごとに書込んでいます。書込みが終わったら「open_file.close()」で閉じて終了しています。

結果

上記が結果になります。プログラムは関数化してあるので、必要のときだけ呼び出して下さい。

タイトルとURLをコピーしました