Python openpyxl 蔬菜价格明细表变动
[要求]
1,生成 蔬菜價格明細(xì)表
2,把價格變動的菜價,更新到總表中
[思路]
1,利用 集合的原理, key不變, 只更新value
2,按列生成數(shù)據(jù)
3,整理數(shù)據(jù)成集合的形式 ,包括原始價格和新價格
4,遍歷表格中名稱和價格, 選取變更的價格 更新到新表中
–coding:utf-8–
材料: 原始菜名 新價格
名稱 = (
“白菜、菠菜、油菜、卷心菜、莧菜、韭菜、蒿菜、香菜、芥菜、芥蘭、茴香、蒜苗、萵筍、空心菜、豌豆尖、生菜、白花菜、青花菜、油麥菜、甘藍(lán)、小蔥、蘿卜、馬鈴薯、藕、甘薯、山藥、芋頭、茭白、苤藍(lán)、慈姑、洋蔥、生姜、大蒜、蒜薹、韭菜花、大蔥、韭黃、冬瓜、南瓜、西葫蘆、絲瓜、黃瓜、茄子、西紅柿、苦瓜、辣椒、玉米、小瓜、毛豆、豌豆、蠶豆、扁豆、豇工、四季豆、香菇、平菇、金針菇、木耳、銀耳、杏鮑菇、口蘑”
)
菜價_up=“菠菜:100.00、油菜:100.50、莧菜:100.99、香菜:0.80”
1,調(diào)入模塊
import random
from openpyxl import Workbook
2, 新建表格
wb=Workbook()
ws=wb.active
3, 填充列標(biāo)題
ws.append([“序號”, “菜名”, “單價”, “數(shù)量”, “合計”]) # 用列表的形式填充
4, 填充表格 數(shù)據(jù) 以列填充
名稱_list=名稱.split("、") #字符串變列表
for 序號,名稱 in enumerate(名稱_list):
# print(序號,名稱)
ws.cell(row=序號+2,column=1).value =序號+1
ws.cell(row=序號+2,column=2).value =名稱
ws.cell(row=序號+2,column=3).value =round(random.uniform(3,15),2) #單價
ws.cell(row=序號+2,column=4).value =random.randint(30,50) #數(shù)量
價格=ws.cell(row=序號+2,column=3).value*ws.cell(row=序號+2,column=4).value
ws.cell(row=序號+2,column=5).value = 價格
=表格數(shù)據(jù)制作完成============
5, 清洗 把菜價更改 調(diào)整成 集合形式
菜價_up_list=菜價_up.split("、")
菜價_up_data={}
for i in 菜價_up_list:
菜價_up_data[i.split("😊[0]]=i.split("😊[1]
print(菜價_up_data)
6, 把原始的名稱和價格找出 并更新
菜價_data={}
for row in range(1,len(名稱_list)):
蔬菜名稱=ws.cell(row=row,column=2).value
價格=ws.cell(row=row,column=3).value
菜價_data.setdefault(蔬菜名稱,價格) # 形成價格 集合
if 蔬菜名稱 in 菜價_up_data :
ws.cell(row=row,column=3).value=菜價_up_data[蔬菜名稱]
wb.save(“004 蔬菜價格表變動.xlsx”)
代碼奉上
# --*coding:utf-8*-- """ [要求] 1,生成 蔬菜價格明細(xì)表 2,把價格變動的菜價,更新到總表中 """ # 材料 名稱 = ("白菜、菠菜、油菜、卷心菜、莧菜、韭菜、蒿菜、香菜、芥菜、芥蘭、茴香、蒜苗、萵筍、空心菜、豌豆尖、生菜、白花菜、青花菜、油麥菜、甘藍(lán)、小蔥、蘿卜、馬鈴薯、藕、甘薯、山藥、芋頭、茭白、苤藍(lán)、慈姑、洋蔥、生姜、大蒜、蒜薹、韭菜花、大蔥、韭黃、冬瓜、南瓜、西葫蘆、絲瓜、黃瓜、茄子、西紅柿、苦瓜、辣椒、玉米、小瓜、毛豆、豌豆、蠶豆、扁豆、豇工、四季豆、香菇、平菇、金針菇、木耳、銀耳、杏鮑菇、口蘑" ) 菜價_up="菠菜:100.00、油菜:100.50、莧菜:100.99、香菜:0.80"# 1,調(diào)入模塊 import random from openpyxl import Workbook # 2, 新建表格 wb=Workbook() ws=wb.active # 3, 填充列標(biāo)題 ws.append(["序號", "菜名", "單價", "數(shù)量", "合計"]) # 用列表的形式填充 # 4, 填充表格 數(shù)據(jù) 名稱_list=名稱.split("、") for 序號,名稱 in enumerate(名稱_list):# print(序號,名稱)ws.cell(row=序號+2,column=1).value =序號+1ws.cell(row=序號+2,column=2).value =名稱ws.cell(row=序號+2,column=3).value =round(random.uniform(3,15),2) #單價ws.cell(row=序號+2,column=4).value =random.randint(30,50) #數(shù)量價格=ws.cell(row=序號+2,column=3).value*ws.cell(row=序號+2,column=4).valuews.cell(row=序號+2,column=5).value = 價格 # ============================表格數(shù)據(jù)制作完成==================== # 5, 清洗 把菜價更改 調(diào)整成 集合形式 菜價_up_list=菜價_up.split("、") 菜價_up_data={} for i in 菜價_up_list:菜價_up_data[i.split(":")[0]]=i.split(":")[1] print(菜價_up_data)# 6, 把原始表格的名稱和價格找出 菜價_data={} for row in range(1,len(名稱_list)):蔬菜名稱=ws.cell(row=row,column=2).value價格=ws.cell(row=row,column=3).value菜價_data.setdefault(蔬菜名稱,價格) # 形成價格 集合if 蔬菜名稱 in 菜價_up_data :ws.cell(row=row,column=3).value=菜價_up_data[蔬菜名稱] wb.save("004 蔬菜價格表變動.xlsx")總結(jié)
以上是生活随笔為你收集整理的Python openpyxl 蔬菜价格明细表变动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 名著一句话概括
- 下一篇: 408,你可敬的对手!