質問: sheet2['C47'].value ・globを使ってフォルダ内のExcelファイルを取得もできます。 import glob files=glob.glob(r'C:\\Users\\test\\*.xlsx') for file in files: ここから先がわかりません。 できないこと ------ 上記の二つを組み合わることがまずできていません。 あと、一覧を取得できたとして.txtにして書き出す 方法がわかりません。 懇願 -- 説明が長くなりました。 もっといい方法もあると思うのですが どなたかご教示願えませんでしょうか? よろしくお願いします。 環境 -- python 3.x windows10
回答: ``` import glob import openpyxl #ここでxlsxファイルのパスがリスト化される files = glob.glob(r'C:\\Users\\test\\*.xlsx') #print(files)して確認してみてください。 #パスがリスト化され出力れると思います。 #リストからファイルを一つずつ取り出して処理を行う for file in files: #print(file)して確認してみてください。 #一つずつファイルのパスがprintされると思います。 #ここに一つずつ取り出したファイルに対しやりたい処理を書いていきます。 wb = openpyxl.load_workbook(filename=file) sheet2 = wb['1111'] No = sheet2['G47'].value client = sheet2['C47'].value ``` text保存したいという事でしたが、各データを各textファイルに保存したいのか それとも複数のデータを一つのtextファイルにまとめて保存したいのかがわからない為 正しく導く事が出来ませんが、ファイルへの保存の仕方は下記となります。 ``` #textへの保存の処理 f = open('保存したいファイル名', 'w') f.writelines(入力したい値) f.close() ``` データを各textファイルに保存したいという事であればfor文の中に 複数のデータを一つのtextファイルにまとめて保存したいということであれば for文を抜けた後に記述してあげてください。 ### 追記 ``` import openpyxl import glob files = glob.glob(r'C:\Users\a\Desktop\test\新しいフォルダー\\*xlsx') #for文で取り出した値を入れておく為の辞書を用意しておく client_dict = {} for file in files: wb = openpyxl.load_workbook(file) num = wb['1111']['G74'].value client = wb['1111']['C74'].value client_dict[num] = client #textファイルをここで操作していく #textファイルが存在しない場合には自動で生成される。存在している場合にはそのまま追記される with open('ファイル名.txt', 'w', newline='\n') as f: #ループ処理で辞書からkeyとvalueを取り出し文末に改行を入れて追記し保存する処理 for k,v in client_dict.items(): f.write('No.{} {}\n'.format(k, v)) ```