前提・実現したいこと
毎回違うファイル名を指定して、Openpyxlで開きたい
毎日違うファイル名でxlsxファイルが届きます。
そのファイルをOpenpyxlを使用して開きたいですが
wb = openpyxl.load_workbook('')
の()内に変数を入れても開かないのでしょうか?
前提
下記ソースコードの該当のディレクトリhogeの中は下記の状態です。
・xlsx.1ファイルのみ(Openpyxlで開きたいファイル)
・フォルダ→xlsx.複数
またファイル名は例として、このような名称です「サンプル提出 報告書用201002サンプル.xlsx」
発生している問題・エラーメッセージ
openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm
該当のソースコード
Python
1import pandas as pd 2import os 3import glob 4import openpyxl 5 6 7os.chdir("hoge") #ディレクトリ移動 8 9#hoge からファイル名取得 10excel_files = glob.glob('*.xlsx') 11 12 13#ファイルを開く 14wb = openpyxl.load_workbook('file_name')
試したこと
いろいろ調べたつもりですが、解決策が分からずここに質問させて頂きました。
補足情報(FW/ツールのバージョンなど)
Python 3.8.5
excel_filesの中はどうなっているか確認されましたか?
あと、提示していただいたコードでは「openpyxl.load_workbook('file_name')」になっていますが、この状態で実行されたのでしょうか?
takutakuya様
ありがとうございます。
質問頂いた事を確認し、試してみたところ解決した様です。
1.excel_filesの中身を文字列に変更しました。
2.openpyxl.load_workbook(file_name) ←これは単純なミスで指定する関数を間違えておりました。質問されて気が付きました。
下記の様に試したところ無事に動いたようです。
#hoge からファイル名取得
excel_files = glob.glob('*.xlsx')
#文字列化 (もっと良い方法が有るかもしれませんが、フォルダ内にエクセルは1ファイルしか無い状態なので、これで強引に文字列化してみました。)
mojiretsu = ','.join(excel_files)
#ファイルを開く
wb = openpyxl.load_workbook(mojiretsu)
恐らく皆様から見ると可笑しな部分が有るかもしれませんが、後々修正していければと思います。
ありがとうございました。
回答1件
あなたの回答
tips
プレビュー