質問編集履歴

1

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

2020/10/05 04:15

投稿

kohmasaki
kohmasaki

スコア0

test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,103 @@
21
21
  行を列に変更して、それを順番に下に保存する具体的なコードがなく困っています。
22
22
 
23
23
  ご教授、お願いします。
24
+
25
+
26
+
27
+ <追記編集>
28
+
29
+ ご不快に思われた方、大変申し訳ありませんでした。
30
+
31
+ 質問方法が稚拙でした。
32
+
33
+ まずはgoogle driveに抽出したいデータが含まれたfileをuploadし、google colaboratoryからアクセスできるようにしています。
34
+
35
+ また、作成したデータをいれるフォルダーも作成しております。
36
+
37
+
38
+
39
+ これまで試行錯誤で作成したコードですが、
40
+
41
+
42
+
43
+ pip install openpyxl
44
+
45
+ import openpyxl
46
+
47
+ import glob
48
+
49
+ import os
50
+
51
+ from openpyxl import Workbook
52
+
53
+
54
+
55
+ # 抽出したいfileを設定
56
+
57
+ folderpath_before='/content/drive/My Drive/フォルダー名前'
58
+
59
+
60
+
61
+ sheet_name='Sheet1
62
+
63
+
64
+
65
+ #読み込みたい行を設定
66
+
67
+ row_num_value=3
68
+
69
+
70
+
71
+ #読み込みたい列の範囲を設定
72
+
73
+ for i in range(13,130):
74
+
75
+ col_num_value=i
76
+
77
+
78
+
79
+
80
+
81
+ #読み込んだあとに保存するフォルダーを設定
82
+
83
+ folderpath_after='/content/drive/My Drive/整理後のフォルダー'
84
+
85
+
86
+
87
+ #実行していくコードのつもり…
88
+
89
+
90
+
91
+ wb = Workbook()
92
+
93
+ #フォルダーからexcelファイルのみ抽出させる
94
+
95
+ files = sorted(glob.glob('/content/drive/My Drive/フォルダー名'+"/*.xlsx"))
96
+
97
+ new_ws = wb.active
98
+
99
+ count = 1
100
+
101
+ new_ws_values = []
102
+
103
+
104
+
105
+ for file in files:
106
+
107
+ filename, file_extension = os.path.splitext(file)
108
+
109
+ opened_file = openpyxl.load_workbook(file)
110
+
111
+ sheet = opened_file
112
+
113
+ new_ws_value = sheet.cell(row=row_num_value, column=col_num_value).value
114
+
115
+ new_ws_values.append(new_ws_value)
116
+
117
+ new_ws.cell(count, 2).value = new_ws_value
118
+
119
+ count += 1
120
+
121
+
122
+
123
+ としております。