質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

460閲覧

Python 複数のExcelファイルを転記する際、各ファイルの名前を一緒に出力したい

xmaniT

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/02/16 00:22

実現したいこと

抽出した複数のデータの先頭にそれぞれのファイル名を付記したい

前提

複数のExcelファイルを転記するプログラムを作っています。指定の範囲を転記するところまではできましたが、抽出した各データの先頭にそれぞれのファイル名を付記するコードが思うように書けません。期待しているのは次のようなイメージです。また、ファイル数は状況によって変わります。

ファイル1の名前
抽出したデータ

ファイル2の名前
抽出したデータ

ファイル3の名前
抽出したデータ

発生している問題・エラーメッセージ

下記のソースコードではエラーは発生しませんが、それぞれのファイル名が付記されません。

該当のソースコード

import

1import openpyxl 2from tkinter import messagebox 3from openpyxl import load_workbook 4 5target_dir = 'C:/Users/xxxxxx/Desktop/Python/xxxxxxx/logs' 6 7wb1 = load_workbook('aaaaa.xlsx') 8ws1 = wb1.worksheets[1] 9 10files = glob.glob(target_dir + '/*.xlsx') 11 12for fname in files: 13 book = openpyxl.load_workbook(fname, data_only=True) 14 sheet = book.active 15 16 rows = sheet["D23":"D33"] 17 18 for row in rows: 19 values = [cell.value for cell in row] 20 21 if values[0] is None: break 22 23 ws1.append(values) 24 25wb1.save('aaaaa.xlsx')
### 試したこと ファイル名だけ、データの転記だけならうまくいきましたが、上記のイメージ通りのコードを書こうとするとうまくいきません。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のようにファイル毎ループの先頭でファイル名の行をappendすればよいと思います。

Python

1# 略 2for fname in files: 3 ws1.append([fname]) 4 book = openpyxl.load_workbook(fname, data_only=True)

投稿2023/02/16 01:09

can110

総合スコア38256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xmaniT

2023/02/16 01:15

そうすればよかったのですね。勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問