回答編集履歴

1

追記に対する回答

2019/08/07 02:08

投稿

yamap55
yamap55

スコア1376

test CHANGED
@@ -31,3 +31,75 @@
31
31
  openpyxlのドキュメント↓
32
32
 
33
33
  https://openpyxl.readthedocs.io/en/stable/
34
+
35
+
36
+
37
+ ----
38
+
39
+
40
+
41
+ 追記への回答
42
+
43
+
44
+
45
+ ファイル毎に分けるのはファイル名を正規表現などで切り分けてシートを選択、
46
+
47
+ 画像を縦に保存するには単純にセルをずらせばいいのではないでしょうか?
48
+
49
+
50
+
51
+ 以下のような感じでしょうか。(動かしていないので、動かなかったら適時修正してください。)
52
+
53
+
54
+
55
+ ```python
56
+
57
+ import openpyxl
58
+
59
+ import os
60
+
61
+ import re
62
+
63
+
64
+
65
+ path = 'd:/work/20190807'
66
+
67
+ output_path = '11.xlsx'
68
+
69
+ r = re.compile(r'xxx.*') # ファイル名にマッチする正規表現
70
+
71
+
72
+
73
+ wb = openpyxl.Workbook()
74
+
75
+ wb.create_sheet()
76
+
77
+
78
+
79
+ files = os.listdir(path)
80
+
81
+ for i, f in enumerate(files):
82
+
83
+ if r.match(f):
84
+
85
+ ws = wb.worksheets[0]
86
+
87
+ else:
88
+
89
+ ws = wb.worksheets[1]
90
+
91
+ img = openpyxl.drawing.image.Image(os.path.join(path, f))
92
+
93
+ row_number = 1 if i == 0 else i * 100
94
+
95
+ ws.add_image( img, 'A{}'.format(row_number))
96
+
97
+
98
+
99
+ wb.save(output_path)
100
+
101
+ ```
102
+
103
+
104
+
105
+ 尚、画像をきっちり縦に並べたいのであれば、画像の縦のサイズを調べてセルのサイズで割るなどが必要でしょうが、それは本質問の内容とはだいぶずれるので割愛します。