ここでは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()」で閉じて終了しています。
結果
上記が結果になります。プログラムは関数化してあるので、必要のときだけ呼び出して下さい。