用python实现excel先进先出核算代码
时间: 2024-06-08 13:07:17 浏览: 18
以下是一个简单的Python程序,实现了Excel的先进先出(FIFO)核算。
```python
import pandas as pd
# 读取数据文件
data = pd.read_excel('inventory.xlsx')
# 创建一个新的DataFrame,用于记录每次销售的信息
sales = pd.DataFrame(columns=['Date', 'Product', 'Quantity', 'Price'])
# 循环处理每一笔销售
while True:
product = input('请输入销售产品名称:')
if product == 'exit':
break
quantity = int(input('请输入销售数量:'))
price = float(input('请输入销售价格:'))
# 找到库存中最早进货的符合条件的产品
inventory = data[data['Product'] == product].sort_values(by='Date')
for index, row in inventory.iterrows():
if row['Quantity'] >= quantity:
# 如果该笔进货数量大于等于销售数量,直接更新库存
data.loc[index, 'Quantity'] -= quantity
break
else:
# 如果该笔进货数量小于销售数量,更新库存后继续查找
data.loc[index, 'Quantity'] = 0
quantity -= row['Quantity']
# 将销售记录添加到sales DataFrame中
sales = sales.append({
'Date': pd.Timestamp.now(),
'Product': product,
'Quantity': quantity,
'Price': price
}, ignore_index=True)
# 输出最终的库存和销售情况
print('库存情况:')
print(data)
print('销售情况:')
print(sales)
```
这个程序假设数据文件名为`inventory.xlsx`,其中包含了每次进货的日期、产品名称和数量。程序会提示用户输入销售产品的名称、数量和价格,并根据FIFO的规则更新库存情况。每次销售的信息都会被记录到一个名为`sales`的DataFrame中,最后程序会输出最终的库存情况和销售情况。