含main函数的python代码: 1. 创建一个需求管理excel,如果已经存在则直接打开。可添加多条需求,A列需求序号,B列需求内容,C列需求提出人,D列需求状态(open/close),E列需求提出时间,F列需求关闭时间 2. 可根据C列需求提出人和D列需求状态查询excel中的需求 3. 可以修改指定需求提出人且指定的状态为open的需求的状态,同时修改该需求的需求关闭时间为当前时间 4. 可以删除需求提出人为指定人且需求状态为close的需求 5. 可以统计出open或者close需求的数量
时间: 2023-10-17 17:31:54 浏览: 136
很抱歉,Python是一种解释型语言,不需要像C++或Java那样需要一个主函数。以下是符合你要求的代码,需要安装pandas库和openpyxl库。
```python
import pandas as pd
from datetime import datetime
from openpyxl import load_workbook
class RequirementManagement:
def __init__(self, filename):
self.filename = filename
self.df = self.load_data()
def load_data(self):
try:
df = pd.read_excel(self.filename)
except:
df = pd.DataFrame(columns=["序号", "需求内容", "提出人", "状态", "提出时间", "关闭时间"])
df.to_excel(self.filename, index=False)
df = pd.read_excel(self.filename)
return df
def add_requirement(self, content, proposer):
max_id = self.df["序号"].max()
if pd.isnull(max_id):
max_id = 0
new_id = max_id + 1
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
new_row = pd.Series({"序号": new_id, "需求内容": content, "提出人": proposer, "状态": "open", "提出时间": now})
self.df = self.df.append(new_row, ignore_index=True)
self.df.to_excel(self.filename, index=False)
def query_requirement(self, proposer=None, status=None):
if proposer and status:
result = self.df[(self.df["提出人"]==proposer) & (self.df["状态"]==status)]
elif proposer:
result = self.df[self.df["提出人"]==proposer]
elif status:
result = self.df[self.df["状态"]==status]
else:
result = self.df
return result.reset_index(drop=True)
def modify_requirement(self, proposer, new_status):
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self.df.loc[(self.df["提出人"]==proposer) & (self.df["状态"]=="open"), ["状态", "关闭时间"]] = [new_status, now]
self.df.to_excel(self.filename, index=False)
def delete_requirement(self, proposer):
self.df = self.df[(self.df["提出人"]!=proposer) | (self.df["状态"]=="open")]
self.df.to_excel(self.filename, index=False)
def count_requirement(self, status):
count = len(self.df[self.df["状态"]==status])
return count
if __name__ == "__main__":
rm = RequirementManagement("需求管理.xlsx")
rm.add_requirement("需求1", "提出人1")
rm.add_requirement("需求2", "提出人2")
rm.add_requirement("需求3", "提出人1")
rm.modify_requirement("提出人1", "close")
rm.delete_requirement("提出人2")
print(rm.query_requirement())
print(rm.count_requirement("open"))
print(rm.count_requirement("close"))
```
在主函数中,我们创建了一个RequirementManagement对象,并调用了它的几个方法,包括添加需求、查询需求、修改需求、删除需求和统计需求。其中,load_data()方法用于加载已有的需求管理excel,如果文件不存在,则创建一个新的excel。add_requirement()方法用于添加新的需求,生成新的序号并将数据添加到excel中。query_requirement()方法用于查询符合条件的需求,可以按照提出人和状态进行查询。modify_requirement()方法用于修改需求的状态和关闭时间,只能修改提出人为指定人且状态为open的需求。delete_requirement()方法用于删除提出人为指定人且状态为close的需求。count_requirement()方法用于统计open或close需求的数量。
阅读全文