Pathの文字列を配列を使って作成したのですが、
作成した文字列でExcelを開くことができません。
Aさん~Bさんまでは
同じフォルダに入っていて、
それぞれのファイル名は同じです。
配列を使ってExcelを開けるように書きました。
<フォルダ>
■Aさんフォルダ
→AAA.xlsx
■Bさんフォルダ
→AAA.xlsx
■Cさんフォルダ
→AAA.xlsx
■Dさんフォルダ
→AAA.xlsx
excel_from_name = "AAA.xlsx" path = r"C:\Users\〇〇〇\Desktop\案件\Excelへ転記\転記元" folderlist = glob.glob(os.path.join(path, '*')) #ファイルのフルパスを取得 #10回繰り返す。「i」に0~9まで値が代入される for i in range(len(folderlist)): excel_path = folderlist[i] + "\" + excel_from_name word = folderlist[i] # シート名を取得 sheet_name = os.path.basename(word) #フォルダー名のみ取得 #Excel開く workbook = load_workbook(excel_path)
raw文字列が原因かと思いましたが、
どのように記載すればいいのか分からないでいます。
> 作成した文字列でExcelを開くことができません。
具体的に何が起こると期待していますか。実際に動かしたときに期待とは何が違いますか。
あとコードにはload_workbookを定義している所がありません。
"C:\Users\〇〇〇\Desktop\案件\Excelへ転記\転記元¥〇〇(例〇さんフォルダ)¥AAA.xlsx
を開いてExcelの値を取得したいです。
それをAさん~Dさんまで繰り返し処理を利用して行いたいです。
load_workbookの定義ですか?importはしてるのですが、不十分ですか?
情報はこの欄に書かないでください。質問に追記してください。
> load_workbookの定義ですか?importはしてるのですが、不十分ですか?
質問に書いてありません。99% openpyxlからのimportだろうとは思っても、回答してから"そうじゃありません。実はこう書いてます"とか言われたら時間の無駄ですのでそういうところを省かれると躊躇します。
> C:\Users\〇〇〇\Desktop\案件\Excelへ転記\転記元¥〇〇(例〇さんフォルダ)¥AAA.xlsx
を開いて
質問のコードはそういうコードになっていると思いますが何があなたの期待と違いますか? という質問です。(まだちゃんと見てないので、"そういうコードになっていると思います"は"だいたい合ってそう"ぐらいの感覚の話です)
ハッキリ書くと、"Excelを開く"が曖昧で、パッと考えると"Excelアプリケーションが起動する"と"xlsxファイルの中身が読める状態になる"の2通りの可能性があるのですが、あなたはどういう意味で使ってますか? ということです。
実際に動かしたときに何が起きて、それがあなたの期待とどう違うんですか? ということがこの質問には書かれていません。
一言にすると「載っている分のコードは普通に動くように見えるけれど何が問題なのか?」です。
コードを動かしたけど、問題無くエクセルファイルを開けました
当方のPC内の適当な場所に空のフォルダを作り、その中に「Aさん」フォルダと「Bさん」フォルダを作り、それぞれの中に「AAA.xlsx」を置いて、確認しました
コードの変更点は、下記の通り
・必要なimportを追加
・path =... を、当方のPCの実際フォルダパスに変更
・folderlist =... 以下の不要なインデントを削除 (for... 以下の必要なインデントは、もちろん残してます)
・load_workbook()の次に、エクセルファイルの内容を表示するコードを追加
> Excelを開くことができません。
とは、具体的に何が起きるのでしょうか?
もしエラーメッセージが表示されるのなら、それを質問に追記してください (できるだけ省略せずに)
回答1件
あなたの回答
tips
プレビュー