回答編集履歴

3

解説しても無駄と判断

2022/11/17 09:29

投稿

pig_vba
pig_vba

スコア807

test CHANGED
@@ -1,9 +1,36 @@
1
+
1
- ```Python
2
+ ```python
3
+ import openpyxl as px
4
+ import os
5
+ import glob
6
+ from openpyxl import Workbook
7
+
8
+ #対象ファイルが格納されているフォルダ
9
+ target_dir = 'C:/Users/student/Documents/MyPython/hukusu'
10
+ #保存先
11
+ save_file = 'C:/Users/student/Documents/MyPython/hukusu/まとめ.xlsx'
12
+ #「まとめ.xlsx」作成
13
+ wb = px.workbook()
14
+ ws = wb.active
15
+
16
+ #「target_dir」にあるエクセルファイル一覧を取得
17
+ files = glob.glob(target_dir + '/*.xlsx')
18
+ #「target_dir」にあるエクセルファイルを読み込む
19
+
20
+ cnt=1#ファイルを一つ処理するごろに1行ずらす
21
+ for fname in files:
22
+ book = px.load_workbook(fname, data_only=True)
23
+ sheet = book.active
24
+
25
+ #行をループして、コピー&ペースト
26
+ n=0
27
+ t=30
2
28
  for i in range(1,53):
3
29
  for j in range(1,31):
4
- #↓
5
- copy = ws.cell(row=i,column=j).value
30
+ copy = sheet.cell(row=i,column=j).value
6
- #j+t*(n-1)これにより1列目からスタートできる。2列目は+1する。
31
+
7
- ws.cell(row=1,column=j+t*(n-1)+1,value=copy)
32
+ ws.cell(row=cnt,column=j+(t*n)+1,value=copy)
33
+ n+=1
34
+ cnt+=1
35
+ wb.save(save_file)
8
36
  ```
9
- copy = sheet.cell(row=i,column=j).valueでは。あと転記先はrow=開いたブック数に対応する変数にしないと永遠に1行目に上書きし続けますよ

2

iではないので修正

2022/11/17 08:06

投稿

pig_vba
pig_vba

スコア807

test CHANGED
@@ -6,4 +6,4 @@
6
6
  #j+t*(n-1)これにより1列目からスタートできる。2列目は+1する。
7
7
  ws.cell(row=1,column=j+t*(n-1)+1,value=copy)
8
8
  ```
9
- copy = sheet.cell(row=i,column=j).valueでは。あと転記先はrow=iにしないと永遠に1行目に上書きし続けますよ
9
+ copy = sheet.cell(row=i,column=j).valueでは。あと転記先はrow=開いたブック数対応する変数にしないと永遠に1行目に上書きし続けますよ

1

補足

2022/11/17 07:47

投稿

pig_vba
pig_vba

スコア807

test CHANGED
@@ -6,4 +6,4 @@
6
6
  #j+t*(n-1)これにより1列目からスタートできる。2列目は+1する。
7
7
  ws.cell(row=1,column=j+t*(n-1)+1,value=copy)
8
8
  ```
9
- copy = sheet.cell(row=i,column=j).valueでは。
9
+ copy = sheet.cell(row=i,column=j).valueでは。あと転記先はrow=iにしないと永遠に1行目に上書きし続けますよ