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 16:31:54 浏览: 75
很抱歉,我刚刚已经给出了符合你要求的Python代码。以下是代码的完整版,你可以直接复制粘贴运行。
```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"))
```
阅读全文