質問編集履歴
6
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -110,13 +110,7 @@
|
|
110
110
|
|
111
111
|
import openpyxl
|
112
112
|
|
113
|
-
|
114
|
-
|
115
|
-
|
113
|
+
|
116
|
-
|
117
|
-
プログラム内に学生やstudentの明記ございますが気にしないで下さい。
|
118
|
-
|
119
|
-
|
120
114
|
|
121
115
|
wb = openpyxl.load_workbook("./惣菜売上.xlsx")
|
122
116
|
|
@@ -124,9 +118,9 @@
|
|
124
118
|
|
125
119
|
|
126
120
|
|
127
|
-
#
|
121
|
+
# オプションのリスト
|
128
122
|
|
129
|
-
|
123
|
+
option_list = []
|
130
124
|
|
131
125
|
# 列名のセル
|
132
126
|
|
@@ -154,13 +148,11 @@
|
|
154
148
|
|
155
149
|
row_dic[k.value] = v.value
|
156
150
|
|
157
|
-
|
151
|
+
option_list.append(row_dic)
|
158
152
|
|
159
153
|
|
160
154
|
|
161
|
-
print(
|
155
|
+
print(option_list)
|
162
|
-
|
163
|
-
|
164
156
|
|
165
157
|
|
166
158
|
|
5
文法の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
パイソン
|
1
|
+
パイソン エクセルシート(見積書とオプション) 文言一致している際、オプション金額を入力反映したい
|
test
CHANGED
File without changes
|
4
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,23 +6,53 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
1、見積書用のエクセルシートを準備。
|
10
10
|
|
11
|
-
|
11
|
+
|惣菜名|売上額|売上額修正|
|
12
12
|
|
13
|
-
|
13
|
+
|:--|:--:|--:|
|
14
14
|
|
15
|
-
|
15
|
+
|秋刀魚の竜田揚げ|100||
|
16
16
|
|
17
|
-
|
17
|
+
|きのこの白和え|100||
|
18
18
|
|
19
|
-
辞書内より商品名を検索、ヒットすれば書き込み用のエクセルに
|
20
|
-
|
21
|
-
|
19
|
+
|菜の花の辛し和え|100||
|
22
|
-
|
23
|
-
誠に恐れ入りますがご確認頂けますと幸いです。
|
24
20
|
|
25
21
|
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
2、オプション金額用のエクセルシートを準備。
|
26
|
+
|
27
|
+
|惣菜名|売上額|
|
28
|
+
|
29
|
+
|:--|:--:|
|
30
|
+
|
31
|
+
|秋刀魚の竜田揚げ|200||
|
32
|
+
|
33
|
+
|きのこの白和え|200||
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
オプション金額用の中で惣菜名を検索、見積書の惣菜名と文言が一致した際、オプションの金額を見積書の売上額修正欄に記入して新規見積としてエクセルシートを保存したいです。
|
40
|
+
|
41
|
+
下記が実行したいエクセルシートの完成形となります。
|
42
|
+
|
43
|
+
|惣菜名|売上額|売上額修正|
|
44
|
+
|
45
|
+
|:--|:--:|--:|
|
46
|
+
|
47
|
+
|秋刀魚の竜田揚げ|100|200|
|
48
|
+
|
49
|
+
|きのこの白和え|100|200|
|
50
|
+
|
51
|
+
|菜の花の辛し和え|100||
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
下記が試したプログラムをとなります。
|
26
56
|
|
27
57
|
|
28
58
|
|
@@ -36,7 +66,7 @@
|
|
36
66
|
|
37
67
|
book=openpyxl.load_workbook('惣菜売上.xlsx')
|
38
68
|
|
39
|
-
sheet=book['
|
69
|
+
sheet=book['ベース']
|
40
70
|
|
41
71
|
|
42
72
|
|
@@ -46,49 +76,51 @@
|
|
46
76
|
|
47
77
|
if name in unitprice:
|
48
78
|
|
49
|
-
sheet.cell(row=row_num,column=
|
79
|
+
sheet.cell(row=row_num,column=3).value=unitprice[name]
|
50
80
|
|
51
|
-
book.save(fname + '.xlsx')
|
81
|
+
book.save(fname + '.xlsx')
|
52
82
|
|
53
|
-
```
|
54
83
|
|
55
|
-
|
56
84
|
|
57
|
-
**#下記が現在の辞書情報となります。**
|
58
85
|
|
59
|
-
```ここに言語を入力
|
60
86
|
|
87
|
+
#上記プログラムの後、下記プログラムを入力しますと
|
88
|
+
|
89
|
+
見積に反映するのですが、{'秋刀魚の竜田揚げ':200}の部分を手入力しています。
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
61
|
-
pu={'秋刀魚の竜田揚げ':
|
95
|
+
pu={'秋刀魚の竜田揚げ':200}
|
62
96
|
|
63
97
|
fname='単価更新1月25日'
|
64
98
|
|
65
|
-
priceupdater(pu,fname)
|
99
|
+
priceupdater(pu,fname)
|
66
|
-
|
67
|
-
```
|
68
100
|
|
69
101
|
|
70
102
|
|
71
|
-
megさんより教えて頂きました
|
72
103
|
|
73
|
-
https://gammasoft.jp/blog/read-rows-of-excel-sheet-using-python/
|
74
104
|
|
75
|
-
|
105
|
+
#実際はオプションの種類は多い為、一つずつ手入力はできないため、オプション金額用のエクセルシートを一括で読み込みしたいです。
|
76
106
|
|
77
|
-
|
107
|
+
オプション金額用のエクセルシートを一括で読み込みを下記プログラムで試したところ
|
78
108
|
|
79
109
|
|
80
110
|
|
81
|
-
```# xlsheet_read_to_dict.py
|
82
|
-
|
83
111
|
import openpyxl
|
84
112
|
|
85
|
-
|
86
113
|
|
114
|
+
|
115
|
+
#プログラムは他の学生のリスト読み込み用の資料を引用している為、
|
116
|
+
|
87
|
-
|
117
|
+
プログラム内に学生やstudentの明記ございますが気にしないで下さい。
|
118
|
+
|
119
|
+
|
88
120
|
|
89
121
|
wb = openpyxl.load_workbook("./惣菜売上.xlsx")
|
90
122
|
|
91
|
-
ws = wb["
|
123
|
+
ws = wb["オプション"]
|
92
124
|
|
93
125
|
|
94
126
|
|
@@ -130,38 +162,22 @@
|
|
130
162
|
|
131
163
|
|
132
164
|
|
133
|
-
```
|
134
165
|
|
135
|
-
下記が読み込んだExcelデータ内容になります。
|
136
166
|
|
137
|
-
|
167
|
+
```
|
138
168
|
|
139
|
-
|
169
|
+
オプション金額用のエクセルシートを一括で読み込みの結果は
|
140
170
|
|
141
|
-
きのこの白和え
|
171
|
+
[{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 200}, {'惣菜名': 'きのこの白和え', '売上額': 200}]という出力結果でした。
|
142
172
|
|
173
|
+
|
174
|
+
|
143
|
-
|
175
|
+
{'秋刀魚の竜田揚げ':200}{'きのこの白和え':200}という出力結果でないと見積書の売上額修正欄に自動的に反映しないと思われます。
|
144
176
|
|
145
177
|
|
146
178
|
|
147
|
-
|
179
|
+
誠に恐れ入りますが必要箇所のみ読み取り方法+その後自動反映の方法ございましたら
|
148
180
|
|
149
|
-
|
181
|
+
ご教授頂けないでしょうか
|
150
182
|
|
151
|
-
|
152
|
-
|
153
|
-
この状態では反応しなかった為、
|
154
|
-
|
155
|
-
変更前{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 712}
|
156
|
-
|
157
|
-
↓
|
158
|
-
|
159
|
-
変更後{ '秋刀魚の竜田揚げ': 712}
|
160
|
-
|
161
|
-
という形にて抽出しないと書き換えられないと思われます。
|
162
|
-
|
163
|
-
{ '秋刀魚の竜田揚げ': 712}という形での拾い出ししたい際の方法が
|
164
|
-
|
165
|
-
ございましたらご教授お願いできないでしょうか
|
166
|
-
|
167
|
-
|
183
|
+
よろしくお願い致します。
|
3
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -152,14 +152,16 @@
|
|
152
152
|
|
153
153
|
この状態では反応しなかった為、
|
154
154
|
|
155
|
-
{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 712}
|
155
|
+
変更前{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 712}
|
156
156
|
|
157
157
|
↓
|
158
158
|
|
159
|
-
{ '秋刀魚の竜田揚げ': 712}
|
159
|
+
変更後{ '秋刀魚の竜田揚げ': 712}
|
160
160
|
|
161
|
-
という形にて抽出しないと書き換えられないと思
|
161
|
+
という形にて抽出しないと書き換えられないと思われます。
|
162
162
|
|
163
163
|
{ '秋刀魚の竜田揚げ': 712}という形での拾い出ししたい際の方法が
|
164
164
|
|
165
165
|
ございましたらご教授お願いできないでしょうか
|
166
|
+
|
167
|
+
皆様お忙しいところ恐縮ですがよろしくお願い致します。
|
2
質問内容を追記させて頂きました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,11 +6,11 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
#1、書き込み用のエクセルシートを準備。
|
9
|
+
****#1、書き込み用のエクセルシートを準備。
|
10
10
|
|
11
|
-
#2、辞書の中に該当商品がヒットした際、
|
11
|
+
**#2、辞書の中に該当商品がヒットした際、****
|
12
12
|
|
13
|
-
#書き込み用のエクセルシート内に指示箇所に金額を入力したいです。
|
13
|
+
**#書き込み用のエクセルシート内に指示箇所に金額を入力したいです。****
|
14
14
|
|
15
15
|
ただ下記プログラムですと辞書は秋刀魚の竜田揚げ1品のみ手打ちで入力しているのみです。
|
16
16
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
#下記が現在の辞書情報となります。
|
57
|
+
**#下記が現在の辞書情報となります。**
|
58
58
|
|
59
59
|
```ここに言語を入力
|
60
60
|
|
@@ -65,3 +65,101 @@
|
|
65
65
|
priceupdater(pu,fname)
|
66
66
|
|
67
67
|
```
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
megさんより教えて頂きました
|
72
|
+
|
73
|
+
https://gammasoft.jp/blog/read-rows-of-excel-sheet-using-python/
|
74
|
+
|
75
|
+
より最初のプログラムを抜粋して添削したものが下記となります。
|
76
|
+
|
77
|
+
読み込みのエクセル名を変更したのみですが...
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
```# xlsheet_read_to_dict.py
|
82
|
+
|
83
|
+
import openpyxl
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
# エクセルファイルの取り込み ※この場合、ファイル名気をつける、この場合はnetのみがファイル名。シート名も合わせる。この場合はsheet1に変更した。
|
88
|
+
|
89
|
+
wb = openpyxl.load_workbook("./惣菜売上.xlsx")
|
90
|
+
|
91
|
+
ws = wb["Sheet1"]
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
# 学生リスト
|
96
|
+
|
97
|
+
student_list = []
|
98
|
+
|
99
|
+
# 列名のセル
|
100
|
+
|
101
|
+
header_cells = None
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
for row in ws.rows:
|
106
|
+
|
107
|
+
if row[0].row == 1:
|
108
|
+
|
109
|
+
# 1行目
|
110
|
+
|
111
|
+
header_cells = row
|
112
|
+
|
113
|
+
else:
|
114
|
+
|
115
|
+
# 2行目以降
|
116
|
+
|
117
|
+
row_dic = {}
|
118
|
+
|
119
|
+
# セルの値を「key-value」で登録
|
120
|
+
|
121
|
+
for k, v in zip(header_cells, row):
|
122
|
+
|
123
|
+
row_dic[k.value] = v.value
|
124
|
+
|
125
|
+
student_list.append(row_dic)
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
print(student_list)
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
```
|
134
|
+
|
135
|
+
下記が読み込んだExcelデータ内容になります。
|
136
|
+
|
137
|
+
惣菜名 売上額
|
138
|
+
|
139
|
+
秋刀魚の竜田揚げ 712
|
140
|
+
|
141
|
+
きのこの白和え 791
|
142
|
+
|
143
|
+
菜の花の辛し和え 1076
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
出力は下記となりました。
|
148
|
+
|
149
|
+
[{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 712}, {'惣菜名': 'きのこの白和え', '売上額': 791}, {'惣菜名': '菜の花の辛し和え', '売上額': 1076}]
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
この状態では反応しなかった為、
|
154
|
+
|
155
|
+
{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 712}
|
156
|
+
|
157
|
+
↓
|
158
|
+
|
159
|
+
{ '秋刀魚の竜田揚げ': 712}
|
160
|
+
|
161
|
+
という形にて抽出しないと書き換えられないと思います。
|
162
|
+
|
163
|
+
{ '秋刀魚の竜田揚げ': 712}という形での拾い出ししたい際の方法が
|
164
|
+
|
165
|
+
ございましたらご教授お願いできないでしょうか
|
1
コードを挿入させて頂きました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,6 +26,8 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
+
```ここに言語を入力
|
30
|
+
|
29
31
|
import openpyxl
|
30
32
|
|
31
33
|
|
@@ -46,14 +48,20 @@
|
|
46
48
|
|
47
49
|
sheet.cell(row=row_num,column=2).value=unitprice[name]
|
48
50
|
|
49
|
-
book.save(fname + '.xlsx')
|
51
|
+
book.save(fname + '.xlsx')
|
52
|
+
|
53
|
+
```
|
50
54
|
|
51
55
|
|
52
56
|
|
53
57
|
#下記が現在の辞書情報となります。
|
58
|
+
|
59
|
+
```ここに言語を入力
|
54
60
|
|
55
61
|
pu={'秋刀魚の竜田揚げ':1000}
|
56
62
|
|
57
63
|
fname='単価更新1月25日'
|
58
64
|
|
59
65
|
priceupdater(pu,fname)
|
66
|
+
|
67
|
+
```
|