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

回答編集履歴

4

修正

2021/06/14 13:13

投稿

退会済みユーザー
answer CHANGED
@@ -1,11 +1,12 @@
1
1
  openpyxlを使った例になります。
2
- ```
2
+ ```DIFF
3
3
  from openpyxl import load_workbook
4
4
  import glob
5
5
  from copy import copy
6
6
 
7
7
 
8
8
  DEST_SHEET_NAME = 貼り付け先ファイルの貼り付け先シート名
9
+ +KEYCELL = 0 # データが入っているか判定する列を指定(0始まり)
9
10
 
10
11
  dest_wb = load_workbook(filename='結合.xlsx')
11
12
  dest_ws = dest_wb[DEST_SHEET_NAME]
@@ -18,6 +19,8 @@
18
19
  print(f"{file}を読み取り中...")
19
20
  ws = wb['Sheet2']
20
21
  for row in ws.rows:
22
+ + if row[KEYCELL].value is None:
23
+ + continue
21
24
  for c, cell in enumerate(row):
22
25
  dest_ws.cell(column=c+1, row=k, value=cell.value)
23
26
  if cell.has_style:

3

修正

2021/06/14 13:13

投稿

退会済みユーザー
answer CHANGED
@@ -28,6 +28,7 @@
28
28
  new_cell.number_format = copy(cell.number_format)
29
29
  new_cell.protection = copy(cell.protection)
30
30
  new_cell.alignment = copy(cell.alignment)
31
+ new_cell.hyperlink = copy(cell.hyperlink)
31
32
  k = k+1
32
33
 
33
34
  dest_wb.save('結合.xlsx')

2

追加

2021/06/13 12:36

投稿

退会済みユーザー
answer CHANGED
@@ -11,11 +11,11 @@
11
11
  dest_ws = dest_wb[DEST_SHEET_NAME]
12
12
 
13
13
  file_list = glob.glob("data/*.xlsx")
14
-
14
+ print(f"読み込み対象のファイルは{len(file_list)}件です。")
15
15
  k = 1
16
16
  for file in file_list:
17
17
  wb = load_workbook(filename=file)
18
- print(file)
18
+ print(f"{file}を読み取り中...")
19
19
  ws = wb['Sheet2']
20
20
  for row in ws.rows:
21
21
  for c, cell in enumerate(row):
@@ -31,5 +31,5 @@
31
31
  k = k+1
32
32
 
33
33
  dest_wb.save('結合.xlsx')
34
-
34
+ print("処理が完了しました")
35
35
  ```

1

2021/06/13 11:05

投稿

退会済みユーザー
answer CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  DEST_SHEET_NAME = 貼り付け先ファイルの貼り付け先シート名
9
9
 
10
- dest_wb = load_workbook(filename='dest.xlsx')
10
+ dest_wb = load_workbook(filename='結合.xlsx')
11
11
  dest_ws = dest_wb[DEST_SHEET_NAME]
12
12
 
13
13
  file_list = glob.glob("data/*.xlsx")