質問編集履歴

6

文法の修正

2020/10/25 09:46

投稿

Tk1221
Tk1221

スコア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
- student_list = []
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
- student_list.append(row_dic)
151
+ option_list.append(row_dic)
158
152
 
159
153
 
160
154
 
161
- print(student_list)
155
+ print(option_list)
162
-
163
-
164
156
 
165
157
 
166
158
 

5

文法の修正

2020/10/25 09:46

投稿

Tk1221
Tk1221

スコア6

test CHANGED
@@ -1 +1 @@
1
- パイソン 辞書を1つずつ打ち込みではなく、シートデータ提供したい
1
+ パイソン エクセルシート(見積書オプション) 文言一致ている際、オプション金額を入力反映したい
test CHANGED
File without changes

4

文章の修正

2020/10/25 07:37

投稿

Tk1221
Tk1221

スコア6

test CHANGED
File without changes
test CHANGED
@@ -6,23 +6,53 @@
6
6
 
7
7
 
8
8
 
9
- ****#1、書き込み用のエクセルシートを準備。
9
+ 1、見積書用のエクセルシートを準備。
10
10
 
11
- **#2、辞書の中に該当商品がヒットした際、****
11
+ |惣菜名|売上額|売上額修正|
12
12
 
13
- **#書き込み用のエクセルシート内に指示箇所に金額を入力したいです。****
13
+ |:--|:--:|--:|
14
14
 
15
- ただ下記プログラムですと辞書は秋刀魚の竜田揚げ1品のみ手打ちで入力しているのみです。
15
+ |秋刀魚の竜田揚げ|00||
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['Sheet1']
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=2).value=unitprice[name]
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={'秋刀魚の竜田揚げ':1000}
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
- # エクセルファイルの取り込み ※この場合、ファイル名気をつける、この場合はnetのファイル名。シート名も合わせる。この場合はsheet1変更
117
+ プログラム内に学生やstudentの明記ございますにしないで下さい
118
+
119
+
88
120
 
89
121
  wb = openpyxl.load_workbook("./惣菜売上.xlsx")
90
122
 
91
- ws = wb["Sheet1"]
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
- 秋刀魚竜田揚げ 712
169
+ オプション金額用エクセルシートを一括で読み込みの結果は
140
170
 
141
- きのこの白和え  791
171
+ [{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 200}, {'惣菜名': 'きのこの白和え', '売上額': 200}]という出力結果でした。
142
172
 
173
+
174
+
143
- 辛し和え 1076
175
+ {'秋刀魚竜田揚げ':200}{'きこの白和え':200}という出力結果でないと見積書の売上額修正欄に自動的に反映しないと思われます。
144
176
 
145
177
 
146
178
 
147
- 出力は下記となりました
179
+ 誠に恐れ入りますが必要箇所のみ読み取り方法+その後自動反映の方法ございました
148
180
 
149
- [{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 712}, {'惣菜名': 'きのこの白和え', '売上額': 791}, {'惣菜名': '菜の花の辛和え', '売上額': 1076}]
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

文章の修正

2020/10/25 07:33

投稿

Tk1221
Tk1221

スコア6

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

質問内容を追記させて頂きました。

2020/10/24 08:34

投稿

Tk1221
Tk1221

スコア6

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

コードを挿入させて頂きました。

2020/10/24 08:31

投稿

Tk1221
Tk1221

スコア6

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
+ ```