恐れ入ります。
度々申し訳ございません。
無知な私にご教授の程、お願い致します。
1、見積書用のエクセルシートを準備。
惣菜名 | 売上額 | 売上額修正 |
---|---|---|
秋刀魚の竜田揚げ | 100 | |
きのこの白和え | 100 | |
菜の花の辛し和え | 100 |
2、オプション金額用のエクセルシートを準備。
惣菜名 | 売上額 |
---|---|
秋刀魚の竜田揚げ | 200 |
きのこの白和え | 200 |
オプション金額用の中で惣菜名を検索、見積書の惣菜名と文言が一致した際、オプションの金額を見積書の売上額修正欄に記入して新規見積としてエクセルシートを保存したいです。
下記が実行したいエクセルシートの完成形となります。
惣菜名 | 売上額 | 売上額修正 |
---|---|---|
秋刀魚の竜田揚げ | 100 | 200 |
きのこの白和え | 100 | 200 |
菜の花の辛し和え | 100 |
下記が試したプログラムをとなります。
import openpyxl def priceupdater(unitprice,fname): book=openpyxl.load_workbook('惣菜売上.xlsx') sheet=book['ベース'] for row_num in range(2, sheet.max_row+1): name=sheet.cell(row=row_num,column=1).value if name in unitprice: sheet.cell(row=row_num,column=3).value=unitprice[name] book.save(fname + '.xlsx') #上記プログラムの後、下記プログラムを入力しますと 見積に反映するのですが、{'秋刀魚の竜田揚げ':200}の部分を手入力しています。 pu={'秋刀魚の竜田揚げ':200} fname='単価更新1月25日' priceupdater(pu,fname) #実際はオプションの種類は多い為、一つずつ手入力はできないため、オプション金額用のエクセルシートを一括で読み込みしたいです。 オプション金額用のエクセルシートを一括で読み込みを下記プログラムで試したところ import openpyxl wb = openpyxl.load_workbook("./惣菜売上.xlsx") ws = wb["オプション"] # オプションのリスト option_list = [] # 列名のセル header_cells = None for row in ws.rows: if row[0].row == 1: # 1行目 header_cells = row else: # 2行目以降 row_dic = {} # セルの値を「key-value」で登録 for k, v in zip(header_cells, row): row_dic[k.value] = v.value option_list.append(row_dic) print(option_list)
オプション金額用のエクセルシートを一括で読み込みの結果は
[{'惣菜名': '秋刀魚の竜田揚げ', '売上額': 200}, {'惣菜名': 'きのこの白和え', '売上額': 200}]という出力結果でした。
{'秋刀魚の竜田揚げ':200}{'きのこの白和え':200}という出力結果でないと見積書の売上額修正欄に自動的に反映しないと思われます。
誠に恐れ入りますが必要箇所のみ読み取り方法+その後自動反映の方法ございましたら
ご教授頂けないでしょうか
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー