質問するログイン新規登録

質問編集履歴

1

情報追加

2021/05/26 13:20

投稿

so_men
so_men

スコア4

title CHANGED
File without changes
body CHANGED
@@ -1,32 +1,56 @@
1
- リストを上から120個ずつ1シートずつ反映していく動作を繰り返し行うことを実現させたいです。
1
+ リストを上から120個ずつ1シートずつ反映していく動作を1280回繰り返し行うことを実現させたいです。
2
2
 
3
3
  現状Excelの1シート目にリストを全て反映させることができるのですが、1シート目は1~120番まで、2シート目は121~240番までというように「120個反映させたら次のシートに反映する」ことができない状態です。
4
4
 
5
+ ■2021_data.xlsx
6
+ ![![イメージ説明](2f6c104afe3e4e32965c1bceafbfc0c6.png)]
7
+
8
+ ■反映イメージ
9
+ ![イメージ説明](e9213cada5d8930eaad70578efb4804e.png)
10
+
5
11
  ```
6
- for i in range(1):
12
+ #データ格納先のエクセルワークブックを読み込む
13
+ wb1 = openpyxl.load_workbook("1280シート.xlsx")
7
- ws = wb1.worksheets[i]
14
+ ws = wb1.active
8
- s1 = 'B'
9
- B =s1 + str(t)
10
15
 
11
- s2 = 'C'
16
+ #格納する元のデータのエクセルを読み込む
17
+ wb2 = openpyxl.load_workbook("2021_data.xlsx")
12
- C = s2 + str(t)
18
+ sheet = wb2["1;q1_1_1~q2_120_1"]
13
19
 
14
- s3 = 'D'
15
- D = s3 + str(t)
16
20
 
21
+ t=2
22
+ for row in sheet.iter_rows(min_row=2):
23
+ # 行からセルを1個ずつ取得し、処理をする
24
+ for cell in row:
25
+ #リストを文字型に変換して分割
26
+ if ',' in str(cell.value) :
27
+ l = str(cell.value)
28
+ op = l.split(',')
29
+ for k in range(2):
30
+ ws = wb1.worksheets[k]
17
- s4 = 'E'
31
+ s1 = 'B'
18
- E = s4 + str(t)
32
+ B =s1 + str(t)
19
33
 
20
- s5 = 'F'
34
+ s2 = 'C'
21
- F = s5 + str(t)
35
+ C = s2 + str(t)
22
-
23
- ws[B]= list[0]
24
- ws[C]= list[1]
25
- ws[D]= list[2]
26
- ws[E]= list[3]
27
- ws[F]= list[4]
28
- t=t+1
29
36
 
37
+ s3 = 'D'
38
+ D = s3 + str(t)
39
+
40
+ s4 = 'E'
41
+ E = s4 + str(t)
42
+
43
+ s5 = 'F'
44
+ F = s5 + str(t)
45
+
46
+ ws[B]= op[0]
47
+ ws[C]= op[1]
48
+ ws[D]= op[2]
49
+ ws[E]= op[3]
50
+ ws[F]= op[4]
51
+
52
+ t=t+1
53
+
30
54
  ```
31
55
 
32
56
  すみませんが、よろしくお願いいたします。