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

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

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

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

Q&A

0回答

406閲覧

フォルダー内の大量のエクセルfileを一括で抽出し行列を変更して1つのファイルにまとめる

kohmasaki

総合スコア0

Python 3.x

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

0グッド

0クリップ

投稿2020/10/04 22:56

編集2020/10/05 04:15

プログラミング初心者です。
現在、google colabolatryでpythonの練習中の者です。

pythonを利用して1つのフォルダーにある大量のエクセルブックの一部分を抽出して1つのブックにまとめたいと思っております。

具体的には
決まった行 (例えばC2からC20)をフォルダーに入っているすべてのエクセルfileから抽出する。
C2からC20は行なのでそれを列に変換する。

行を列に変更して、それを順番に下に保存する具体的なコードがなく困っています。
ご教授、お願いします。

<追記編集>
ご不快に思われた方、大変申し訳ありませんでした。
質問方法が稚拙でした。
まずはgoogle driveに抽出したいデータが含まれたfileをuploadし、google colaboratoryからアクセスできるようにしています。
また、作成したデータをいれるフォルダーも作成しております。

これまで試行錯誤で作成したコードですが、

pip install openpyxl
import openpyxl
import glob
import os
from openpyxl import Workbook

抽出したいfileを設定

folderpath_before='/content/drive/My Drive/フォルダー名前'

sheet_name='Sheet1

#読み込みたい行を設定
row_num_value=3

#読み込みたい列の範囲を設定
for i in range(13,130):
col_num_value=i

#読み込んだあとに保存するフォルダーを設定
folderpath_after='/content/drive/My Drive/整理後のフォルダー'

#実行していくコードのつもり…

wb = Workbook()
#フォルダーからexcelファイルのみ抽出させる
files = sorted(glob.glob('/content/drive/My Drive/フォルダー名'+"/*.xlsx"))
new_ws = wb.active
count = 1
new_ws_values = []

for file in files:
filename, file_extension = os.path.splitext(file)
opened_file = openpyxl.load_workbook(file)
sheet = opened_file
new_ws_value = sheet.cell(row=row_num_value, column=col_num_value).value
new_ws_values.append(new_ws_value)
new_ws.cell(count, 2).value = new_ws_value
count += 1

としております。

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

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

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

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

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

dodox86

2020/10/04 23:18

プログラミング初心者とは言え、現状の質問内容ですと「丸投げ」な印象です。回答がつかない可能性もあります。 (1) フォルダー内のExcelファイルをひとつずつ開く (2) 開いたひとつのExcelファイルの行(セルC2~C20)データを取り出す。 (3) (2)の行方向データを列方向に変換する (4) (3) のデータを下(?)に保存する。 (5) フォルダー内の次のExcelファイルを開くため、(1)へ戻る ような流れが考えられるので、ご自分でまずは調査、実装できるところまでやりましょう。 > 行を列に変更して、それを順番に下に保存する具体的なコードがなく困っています。 ググって見つからないのであれば、自分で考える必要があります。むしろ自分で考える方が先です。
dodox86

2020/10/04 23:23

そもそも、Google ColaboratoryではローカルのExcelファイルへのアクセスはできないと思います。そうである場合、ローカル環境にPython実行環境を整える必要があります。
meg_

2020/10/05 00:53

> 行を列に変更して、それを順番に下に保存する具体的なコードがなく困っています。 上記が現在の課題ですね。 そこまでのコードは書けている前提で良いですね?
meg_

2020/10/05 00:55

> 決まった行 (例えばC2からC20)をフォルダーに入っているすべてのエクセルfileから抽出する。 C2からC20は行なのでそれを列に変換する。 文章だけでは分かりにくいので画像での補足説明があると回答しやすくなります。(元のシートと欲しい結果のシートのサンプル)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問