回答編集履歴

2

for文についての説明を追加

2020/10/15 18:07

投稿

takutakuya
takutakuya

スコア979

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  ```
34
34
 
35
- .xlsxファイルへの処理自体はA1とB1の和をC1に追加する単純なものにしています。
35
+ `.xlsx`ファイルへの処理自体はA1セルとB1セルの和をC1セルに追加する単純なものにしています。
36
36
 
37
37
 
38
38
 
@@ -79,3 +79,35 @@
79
79
  ```
80
80
 
81
81
  `openpyxl`と`pandas`を組み合わせて使われていますが、`pandas`だけでも実現できそうな感じはします。
82
+
83
+
84
+
85
+ ### for文について
86
+
87
+ 何度も追記してすみません。
88
+
89
+ `for`文に関しては説明不要かもしれませんが、念の為。
90
+
91
+ `glob`でPythonファイルと同じフォルダーにある`.xlsx`ファイルのファイル名をリスト形式で取得しています。
92
+
93
+ そのリストを上記のコードでは`file_list`に格納しています。
94
+
95
+ `file_list`の中身は下記のようになっています。
96
+
97
+ ```
98
+
99
+ ['test2.xlsx', 'test1.xlsx']
100
+
101
+ ```
102
+
103
+ この`file_list`を`for`文で使っていますが、`for`文の中の`file`という変数に`file_list`にあるファイル名を1つずつ取り出して格納され、`for`文の中の処理が実行されます。
104
+
105
+
106
+
107
+ そのため、`file_list`にあるファイル名の数だけ処理が実行されます。
108
+
109
+
110
+
111
+
112
+
113
+ 不明点があれば、遠慮なくコメントください。

1

pandasバージョンのコードを追加

2020/10/15 18:07

投稿

takutakuya
takutakuya

スコア979

test CHANGED
@@ -1,4 +1,4 @@
1
- Pythonのファイルと同じフォルダーにある.xlsxファイルを全て読み込んで、同じ処理をし、ファイル名の末尾に「_集計」を付けて保存するコードです。
1
+ Pythonのファイルと同じフォルダーにある`.xlsx`ファイルを全て読み込んで、同じ処理をし、ファイル名の末尾に「_集計」を付けて保存するコードです。
2
2
 
3
3
  ```Python
4
4
 
@@ -33,3 +33,49 @@
33
33
  ```
34
34
 
35
35
  .xlsxファイルへの処理自体はA1とB1の和をC1に追加する単純なものにしています。
36
+
37
+
38
+
39
+ ### 追記
40
+
41
+ `pandas`も使われていたので、`pandas`バージョンも作ってみました。
42
+
43
+ ファイル名を`for`文の中で回していること自体は変わっていません。
44
+
45
+ ```Python
46
+
47
+ import glob
48
+
49
+ import pandas as pd
50
+
51
+
52
+
53
+ file_list = glob.glob('*.xlsx')
54
+
55
+
56
+
57
+ print(file_list)
58
+
59
+
60
+
61
+ for file in file_list:
62
+
63
+ df = pd.read_excel(file)
64
+
65
+ df['C'] = df['A'] + df['B']
66
+
67
+
68
+
69
+ rename_file = file.replace('.xlsx', '_集計.xlsx')
70
+
71
+
72
+
73
+ df.to_excel(rename_file, index=False)
74
+
75
+
76
+
77
+ print(file, '->', rename_file)
78
+
79
+ ```
80
+
81
+ `openpyxl`と`pandas`を組み合わせて使われていますが、`pandas`だけでも実現できそうな感じはします。