python代码: 1. 创建一个问题单管理excel,如果已经存在则直接打开,可以添加多个问题单数据,A列序号,B列问题单编号如A0001,C列问题单内容,D列问题单提出人,E列问题单处理人,F列问题单状态processing/close 2. 可以统计每个提出人名下processing状态的问题单总数和close的问题单总数,并生成到一个名叫按提出人汇总的sheet页。统计方法是每个提出人的processing状态的问题单行数,以及每个提出人的close状态的问题单行数。
时间: 2024-03-27 20:35:26 浏览: 20
以下是 Python 代码实现:
```python
import openpyxl
from openpyxl.utils import get_column_letter
# 创建或打开问题单管理excel
try:
wb = openpyxl.load_workbook('问题单.xlsx')
except FileNotFoundError:
wb = openpyxl.Workbook()
wb.save('问题单.xlsx')
# 添加多个问题单数据
ws = wb.active
ws.title = '问题单'
if '按提出人汇总' not in wb.sheetnames:
wb.create_sheet('按提出人汇总')
summary_ws = wb['按提出人汇总']
def add_issue(issue_id, issue_content, issue_raised_by, issue_assigned_to, issue_status):
# 查找最后一行
last_row = ws.max_row + 1
# 添加问题单数据
ws.cell(row=last_row, column=1, value=last_row - 1)
ws.cell(row=last_row, column=2, value=issue_id)
ws.cell(row=last_row, column=3, value=issue_content)
ws.cell(row=last_row, column=4, value=issue_raised_by)
ws.cell(row=last_row, column=5, value=issue_assigned_to)
ws.cell(row=last_row, column=6, value=issue_status)
# 统计每个提出人名下processing状态的问题单总数和close的问题单总数
if issue_status == 'processing':
summary_ws.cell(row=1, column=1, value='提出人')
summary_ws.cell(row=1, column=2, value='processing状态问题单总数')
summary_ws.cell(row=1, column=3, value='close状态问题单总数')
for row in range(2, summary_ws.max_row + 1):
if summary_ws.cell(row=row, column=1).value == issue_raised_by:
processing_count = summary_ws.cell(row=row, column=2).value or 0
summary_ws.cell(row=row, column=2, value=processing_count + 1)
return
summary_ws.cell(row=last_row, column=1, value=issue_raised_by)
summary_ws.cell(row=last_row, column=2, value=1)
elif issue_status == 'close':
for row in range(2, summary_ws.max_row + 1):
if summary_ws.cell(row=row, column=1).value == issue_raised_by:
close_count = summary_ws.cell(row=row, column=3).value or 0
summary_ws.cell(row=row, column=3, value=close_count + 1)
return
summary_ws.cell(row=last_row, column=1, value=issue_raised_by)
summary_ws.cell(row=last_row, column=3, value=1)
# 测试
add_issue('A0001', '这是问题单1', '张三', '李四', 'processing')
add_issue('A0002', '这是问题单2', '张三', '王五', 'processing')
add_issue('A0003', '这是问题单3', '李四', '王五', 'close')
add_issue('A0004', '这是问题单4', '李四', '张三', 'processing')
add_issue('A0005', '这是问题单5', '王五', '张三', 'close')
# 保存数据
wb.save('问题单.xlsx')
```
以上代码实现了一个添加问题单数据的函数 add_issue,该函数接受五个参数:问题单编号,问题单内容,问题单提出人,问题单处理人和问题单状态。函数将问题单数据添加到问题单管理 excel 中,并统计了每个提出人名下processing状态的问题单总数和close的问题单总数,并生成到一个名叫按提出人汇总的 sheet 页。
在测试代码中,我们调用了 add_issue 函数添加了五个问题单数据,然后保存了问题单管理 excel。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)